2012-05-14 2 views
1

Почему первый оператор является синтаксической ошибкой?Ошибка синтаксиса оператора Tec 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. Вы можете передавать только значения или переменные, а не функции или выражения. См. EXECUTE на BOL.

+0

Вы правы. Сходство с вызовами функций в $ (язык ввода-ввода-программирования) вводит меня в заблуждение. Я задаюсь вопросом о базовом дизайнерском решении ... –

Смежные вопросы