web-dev-qa-db-ja.com

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

みたいなものが欲しい

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

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

例えば。:

文字列を読みたい

John said to Emily "Hey there Emily"

私の試みは

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

ここに行く:

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

'は、''に2倍にするとエスケープされます。

文字列の区切り文字は'ではなく"であるため、"をエスケープする必要はありません。

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

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

162
Oded

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
9
SQLMenace

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

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

ドキュメントについては here を参照してください

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

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

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

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