SQLで変数を1行で宣言して割り当てる方法


131

私のようなものが欲しい

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

文字列内の引用符をエンコードする方法を教えてくれれば、ボーナスポイント。

例えば:

文字列を読みたい

John said to Emily "Hey there Emily"

私の試みは

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

4
SQL Serverの文字列区切り文字は'ではなく"です。
オデッド

回答:


184

ここに行く:

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

'2倍にするとエスケープされることに注意してください''

文字列区切り文字はis 'とnot なので"、エスケープする必要はありません"

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

のMSDNページの2番目の例DECLAREは、正しい構文を示しています。


5
selectステートメントから初期化することもできます。例:declare @eid uniqueidentifier =(select top 1 id from t_Event)
Damien Sawyer

13

SQL 2008ではこれは有効です

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

SQL Server 2005では、これを行う必要があります

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

3

あなたはそれをほとんど持っています:

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

ドキュメントはこちら

引用符については、SQL Serverは引用符ではなくアポストロフィを使用します。

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

文字列で必要な場合は、二重アポストロフィを使用します。

DECLARE @myVariable nvarchar(max) = 'John said to Emily ''Hey there Emily''';
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.