Как объявить и назначить переменную в одной строке в SQL


131

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

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

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

Например:

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

John said to Emily "Hey there Emily"

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

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

4
Разделитель строк в SQL Server - 'нет ".
Oded

Ответы:


184

Поехали:

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

Вы заметите, что это 'можно избежать, удвоив его до ''.

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

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

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


5
Вы также можете инициализировать с помощью оператора select, например: declare @eid uniqueidentifier = (выберите первый идентификатор из t_Event)
Дэмиен Сойер

13

на sql 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

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

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''';
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.