Wie deklariere und ordne ich eine Variable in einer einzelnen Zeile in SQL zu?

131

Ich möchte so etwas wie

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

Bonuspunkte, wenn Sie mir zeigen, wie man ein Zitat in die Zeichenfolge codiert.

Z.B:

Ich möchte, dass die Zeichenfolge gelesen wird

John said to Emily "Hey there Emily"

Mein Versuch wäre

DECLARE myVariable nvarchar[MAX] = "John said to Emily \"Hey there Emily\""
Justin
quelle
4
Das Zeichenfolgenbegrenzer in SQL Server ist 'nicht ".
Oded

Antworten:

186

Hier geht:

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

Sie werden feststellen, dass das 'durch Verdoppeln auf entkommen wird ''.

Da der Zeichenfolgenbegrenzer ist 'und nicht ", muss nicht entkommen ":

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

Das zweite Beispiel auf der MSDN-Seite DECLAREzeigt die korrekte Syntax.

Oded
quelle
5
Sie können auch aus einer select-Anweisung initialisieren, z. B.: Deklarieren Sie @eid uniqueidentifier = (wählen Sie die Top-1-ID aus t_Event aus)
Damien Sawyer
13

auf sql 2008 ist dies gültig

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

Auf SQL Server 2005 müssen Sie dies tun

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

Du hast es fast geschafft:

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

Sehen Sie hier für die Dokumentation

Für die Anführungszeichen verwendet SQL Server Apostrophe und keine Anführungszeichen:

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

Verwenden Sie doppelte Apostrophe, wenn Sie sie in einer Zeichenfolge benötigen:

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