2012-05-14 6 views
1

最初の文に構文エラーがあるのはなぜですか?T-SQL実行文の構文エラー

-- this does not work: "incorrect syntax near the keyword 'system_user'" 
exec dbo.spEmployee_GetRecords @pLoginName = system_user 

-- this works 
declare @p nvarchar(30); 
select @p=system_user 
exec dbo.spEmployee_GetRecords @pLoginName = @p 

(SQL Server 2005のExpress Editionの)

答えて

4

これはEXECUTEの構文です。関数または式ではなく、値または変数のみを渡すことができます。 BOLのEXECUTEを参照してください。

+0

あなたは正しいです。 $(insert-any-programming-language)の関数呼び出しとの類似点は私を誤解させました。私は基本的な設計の決定について疑問に思います... –