2008-12-25 43 views

Trả lời

11

Bạn chỉ cần cú pháp N '' nếu chuỗi chứa các ký tự không nằm trong trang mã mặc định. "Thực hành tốt nhất" là có N '' bất cứ khi nào bạn chèn vào cột nvarchar hoặc ntext.

+0

Nếu mã của tôi là UTF-8, tôi có phải sử dụng tiền tố N không? Cảm ơn! –

0

Nên sử dụng vì mục đích tương thích.

3

Có, bạn thực hiện nếu bạn có các ký tự unicode trong chuỗi.

Từ sách trực tuyến (http://msdn.microsoft.com/en-us/library/ms191313.aspx) ...

"hằng chuỗi Unicode xuất hiện trong mã thực thi trên máy chủ, chẳng hạn như trong thủ tục lưu trữ và triggers, phải được đi trước bởi N. bức thư vốn này là đúng sự thật ngay cả khi cột được tham chiếu đã được định nghĩa là Unicode.Nếu không có tiền tố N, thì chuỗi đó sẽ được chuyển đổi thành trang mã mặc định của cơ sở dữ liệu, điều này có thể không nhận ra các ký tự nhất định. bắt nguồn từ máy chủ và các máy chủ được gửi từ máy khách. "

0

Thực tiễn tốt nhất là sử dụng parameterisation trong trường hợp đó bạn không cần tiền tố N.

+3

Phụ thuộc vào ngữ cảnh. Nếu đây là một kịch bản TSQL thuần túy thì các tham số sẽ không giúp ích gì khi bạn vẫn cần sử dụng tiền tố 'N' khi gán các giá trị cho các tham số. –

Các vấn đề liên quan