Как объявить и назначить переменную в одной строке в SQL - PullRequest
111 голосов
/ 19 августа 2010

Я хочу что-то вроде

DECLARE myVariable nvarchar[MAX] = "hello world".

Бонусные баллы, если вы покажете мне, как кодировать цитату в строке.

Например:

Я хочу, чтобы строкачитать

John said to Emily "Hey there Emily"

моя попытка будет

DECLARE myVariable nvarchar[MAX] = "John said to Emily \"Hey there Emily\""

Ответы [ 3 ]

158 голосов
/ 19 августа 2010

Вот так:

DECLARE @var nvarchar(max) = 'Man''s best friend';

Вы заметите, что ' экранируется, удвоив его до ''.

Поскольку разделитель строк ', а не ", не нужно экранировать ":

DECLARE @var nvarchar(max) = '"My Name is Luca" is a great song';

Во втором примере на странице MSDN DECLARE показан правильный синтаксис.

9 голосов
/ 19 августа 2010

в 2008 году, это действительно

DECLARE @myVariable nvarchar(Max) = 'John said to Emily "Hey there Emily"'
select @myVariable

на SQL Server 2005, вам нужно сделать это

DECLARE @myVariable nvarchar(Max) 
select @myVariable = 'John said to Emily "Hey there Emily"'
select @myVariable
3 голосов
/ 19 августа 2010

Вы почти получили это:

DECLARE @myVariable nvarchar(max) = 'hello world';

См. здесь для документов

Для кавычек SQL Server использует апострофы, а не кавычки:

DECLARE @myVariable nvarchar(max) = 'John said to Emily "Hey there Emily"';

Используйте двойные апострофы, если они вам нужны в строке:

DECLARE @myVariable nvarchar(max) = 'John said to Emily ''Hey there Emily''';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...