2010-08-19 18 views
70

quiero algo así comoCómo yo anuncio y asignar una variable en una sola línea en SQL

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

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

Ej:

Quiero la cadena para leer

John said to Emily "Hey there Emily" 

mi intento sería

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

El delimitador de cadena en SQL Server es ' '',' no " '. – Oded

Respuesta

101

aquí va:

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

se dará cuenta de que el ' es escapó duplicándolo a ''.

Desde delimitador de serie 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 en DECLARE muestra la sintaxis correcta.

+0

También puede inicializar desde una declaración de selección, por ejemplo: declare @eid uniqueidentifier = (seleccione top 1 id from t_Event) –

2

Casi te lo tienes:

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

Ver here de los documentos

Para las cotizaciones, SQL Server utiliza apóstrofes, no frases:

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'''; 
7

en SQL 2008 esto es válido

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

en SQL Server 2005, es necesario hacer esto

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