В T-SQL под MS SQL Server 2008 что означает «@» перед параметром * value *, который является строковым литералом? - PullRequest
6 голосов
/ 02 августа 2011

Я наткнулся на следующий пример кода:

EXECUTE msdb.dbo.sysmail_add_profileaccount_sp        
                            @profile_name = @'SQL mail profile',        
                            @account_name = @'account name',        
                            @sequence_number = 1 ;     

Что означает «@» перед строковым литералом, как в примере выше:

@account_name=@'account name'

Я понимаю, что мой вопрос может быть верным для параметров любого исполняемого модуля в T-SQL или, может быть, для любого строкового литерала в T-SQL в целом, поэтому приведенный выше пример является лишь конкретным примером того, на что я смотрю.

Ответы [ 2 ]

4 голосов
/ 02 августа 2011

Я не думаю, что это действительный T-SQL.Это может быть артефактом замены переменных значениями где-то в скрипте, а не обрезкой начального @.

2 голосов
/ 02 августа 2011

Я получаю синтаксическую ошибку с этим, так что я не думаю, что это что-то значит, кроме того, что это недопустимый синтаксис.Вы извлекли это из действительного T-SQL, который вызывается с использованием только T-SQL, или, возможно, это параметризованный материал, полученный из какого-то другого языка или программы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...