Làm cách nào để khai báo và gán một biến trên một dòng trong SQL


131

Tôi muốn một cái gì đó như

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

Điểm thưởng nếu bạn chỉ cho tôi cách mã hóa trích dẫn trong chuỗi.

Ví dụ:

Tôi muốn đọc chuỗi

John said to Emily "Hey there Emily"

nỗ lực của tôi sẽ là

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

4
Dấu phân cách chuỗi trong SQL Server là 'không ".
Oded

Câu trả lời:


183

Đây là:

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

Bạn sẽ lưu ý rằng cái 'được thoát bằng cách nhân đôi nó lên ''.

Vì dấu phân cách chuỗi là 'và không ", nên không cần phải thoát ":

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

Ví dụ thứ hai trong trang MSDN trên DECLAREhiển thị cú pháp đúng.


5
Bạn cũng có thể khởi tạo từ một câu lệnh chọn, ví dụ: khai báo @eid uniqueidentifier = (chọn 1 id hàng đầu từ t_Event)
Damien Sawyer

13

trên sql 2008 này là hợp lệ

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

trên máy chủ sql 2005, bạn cần làm điều này

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

3

Bạn đã gần nhận được nó:

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

Xem ở đây cho các tài liệu

Đối với dấu ngoặc kép, SQL Server sử dụng dấu nháy đơn, không phải dấu ngoặc kép:

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

Sử dụng dấu nháy đơn nếu bạn cần chúng trong một chuỗi:

DECLARE @myVariable nvarchar(max) = 'John said to Emily ''Hey there Emily''';
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.