Jak zadeklarować i przypisać zmienną w jednym wierszu w języku SQL

131

Chcę czegoś takiego

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

Dodatkowe punkty, jeśli pokażesz mi, jak zakodować cytat w ciągu.

Na przykład:

Chcę przeczytać napis

John said to Emily "Hey there Emily"

moja próba byłaby

DECLARE myVariable nvarchar[MAX] = "John said to Emily \"Hey there Emily\""
Justin
źródło
4
Ogranicznikiem ciągu w SQL Server 'nie jest ".
Oded

Odpowiedzi:

186

Tutaj idzie:

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

Zauważysz, że 'uciekł, podwajając go do ''.

Ponieważ ogranicznikiem ciągu jest 'i nie ", nie ma potrzeby ucieczki ":

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

Drugi przykład na stronie MSDN DECLAREprzedstawia poprawną składnię.

Oded
źródło
6
Możesz również zainicjować za pomocą instrukcji select, np .: deklaruj @eid uniqueidentifier = (wybierz identyfikator pierwszego pierwszego z t_Event)
Damien Sawyer
13

w sql 2008 jest to ważne

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

na serwerze sql 2005 musisz to zrobić

DECLARE @myVariable nvarchar(Max) 
select @myVariable = 'John said to Emily "Hey there Emily"'
select @myVariable
SQLMenace
źródło
4

Prawie to masz:

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

Zobacz tutaj dokumentację

W cudzysłowach SQL Server używa apostrofów, a nie cudzysłowów:

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

Użyj podwójnych apostrofów, jeśli potrzebujesz ich w ciągu:

DECLARE @myVariable nvarchar(max) = 'John said to Emily ''Hey there Emily''';
Daniel Renshaw
źródło