SQL'de tek bir satırda bir değişkeni nasıl bildiririm ve atarım


131

Gibi bir şey istiyorum

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

Dizede bir teklifin nasıl kodlanacağını gösterirseniz bonus puanlar.

Örneğin:

Dizenin okumasını istiyorum

John said to Emily "Hey there Emily"

girişimim olurdu

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

4
SQL Server'daki dize ayırıcı 'değildir ".
Oded

Yanıtlar:


184

İşte:

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

'İkiye katlanarak kaçıldığını fark edeceksiniz ''.

Dize sınırlayıcı olduğu 've olmadığı için ", çıkış yapmaya gerek yoktur ":

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

MSDN sayfasındaki ikinci örnek DECLARE, doğru sözdizimini gösterir.


5
Ayrıca bir select ifadesinden de başlatabilirsiniz, örneğin: declare @eid uniqueidentifier = (t_Event'ten ilk 1 kimliği seçin)
Damien Sawyer

13

2008 sql'de bu geçerlidir

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

sql server 2005'te bunu yapmanız gerekir

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

3

Neredeyse anladınız:

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

Dokümanlar için buraya bakın

Alıntılar için SQL Server tırnak işaretleri değil kesme işaretleri kullanır:

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

Bir dizede ihtiyacınız varsa çift kesme işareti kullanın:

DECLARE @myVariable nvarchar(max) = 'John said to Emily ''Hey there Emily''';
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.