Bagaimana cara mendeklarasikan dan menetapkan variabel pada satu baris dalam SQL

131

Saya menginginkan sesuatu seperti

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

Poin bonus jika Anda menunjukkan kepada saya cara menyandikan kutipan dalam string.

Misalnya:

Saya ingin string membaca

John said to Emily "Hey there Emily"

usaha saya akan menjadi

DECLARE myVariable nvarchar[MAX] = "John said to Emily \"Hey there Emily\""
Justin
sumber
4
Pembatas string dalam SQL Server ', tidak ".
Oded

Jawaban:

184

Ini dia:

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

Anda akan perhatikan bahwa 'itu lolos dengan menggandakannya ke ''.

Karena pembatas string adalah 'dan tidak ", tidak perlu untuk melarikan diri ":

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

Contoh kedua di halaman MSDN pada DECLAREmenunjukkan sintaks yang benar.

Oded
sumber
5
Anda juga dapat menginisialisasi dari pernyataan pilih, misalnya: declare @eid uniqueidentifier = (pilih id 1 teratas dari t_Event)
Damien Sawyer
13

pada sql 2008 ini valid

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

di sql server 2005, Anda perlu melakukan ini

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

Anda hampir mendapatkannya:

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

Lihat di sini untuk dokumennya

Untuk tanda kutip, SQL Server menggunakan tanda kutip, bukan tanda kutip:

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

Gunakan apostrof ganda jika Anda membutuhkannya dalam sebuah string:

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