Як оголосити та призначити змінну в одному рядку в SQL


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

Ви зауважите, що 'уникнути утворення можна, подвоївши його ''.

Оскільки роздільник ліній струни є 'і ні ", не потрібно бігти ":

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

Другий приклад на сторінці MSDN на сторінці DECLAREпоказує правильний синтаксис.


5
Ви також можете ініціалізуватись із вибраного оператора, наприклад: оголосити @eid uniqueidentifier = (вибрати топ-1 ідентифікатор від t_Event)
Damien Sawyer

13

на sql 2008 це дійсно

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

на сервері sql 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''';
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.