¿Cómo declaro y asigno una variable en una sola línea en SQL

131

Quiero algo como

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

Puntos de bonificación si me muestra cómo codificar una cita en la cadena.

P.ej:

Quiero que la cadena lea

John said to Emily "Hey there Emily"

mi intento sería

DECLARE myVariable nvarchar[MAX] = "John said to Emily \"Hey there Emily\""
Justin
fuente
44
El delimitador de cadena en SQL Server es ', no ".
Oded

Respuestas:

184

Aquí va:

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

Notará que 'se escapa al duplicarlo ''.

Como el delimitador de cadena es 'y no ", no hay necesidad de escapar ":

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

El segundo ejemplo en la página de MSDN DECLAREmuestra la sintaxis correcta.

Oded
fuente
55
También puede inicializar desde una instrucción select, por ejemplo: declare @eid uniqueidentifier = (seleccione la identificación del top 1 de t_Event)
Damien Sawyer
13

en sql 2008 esto es válido

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

en SQL Server 2005, debe hacer esto

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

Casi lo tienes:

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

Vea aquí los documentos

Para las comillas, SQL Server usa apóstrofes, no comillas:

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

Use apóstrofes dobles si los necesita en una cadena:

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