2012-05-14 100 views
1

爲什麼第一個語句是語法錯誤?T-SQL Exec語句語法錯誤

-- 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速成版)

回答

4

這是EXECUTE語法。您只能傳遞值或變量,而不能傳遞函數或表達式。請參閱BOL上的EXECUTE

+0

你說得對。與$(insert-any-programming-language)中函數調用的相似性誤導了我。我想知道底層的設計決定...... –