2010-08-19 2 views
70

Je veux quelque chose commeComment puis-je déclare et assignez une variable sur une seule ligne dans SQL

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

points bonus si vous me montrer comment coder une citation dans la chaîne.

Par exemple:

Je veux la chaîne à lire

John said to Emily "Hey there Emily" 

ma tentative serait

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

Le séparateur de chaîne dans SQL Server est ' '', 'pas" '. – Oded

Répondre

101

va ici:

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

Vous remarquerez que le ' est échappé en le doublant à ''.

Depuis le séparateur de chaîne est ' et non ", il n'y a pas besoin d'échapper ":

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

Le deuxième exemple dans la page MSDN sur DECLARE montre la syntaxe correcte.

+0

Vous pouvez également initialiser à partir d'une instruction select, par exemple: declare @eid uniqueidentifier = (sélectionnez le top 1 de t_Event) –

2

Vous avez presque l'avez:

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

Voir here pour les docs

Pour les citations, SQL Server utilise apostrophes, pas des citations:

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

Utilisez doubles si apostrophes vous en avez besoin dans une chaîne:

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

sur sql 2008 ceci est valable

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

sur le serveur SQL 2005, vous devez faire

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