2013-10-11 43 views
3

這可能是小白的問題,但我發現了一些T-SQL查詢例子來驗證數據庫大小與SELECTWHERE條款here對字符串文字SQL Server的T-SQLň前綴

下面是代碼:

SELECT name, size, size*1.0/128 AS [Size in MBs] 
FROM sys.master_files 
WHERE name = N'mytest'; 

我的問題是N前綴在WHERE name = N'keyword'子句中的含義是什麼?

我以前總是用WHERE name = 'keyword',我沒有找到差異(你可以自己嘗試一下)。

我GOOGLE了這一點,但我不知道我的關鍵字應該尋找

回答

4

它聲明字符串爲nvarchar數據類型(Unicode),而不是varchar(8位編碼,包括ASCII)。

僅供參考,這是問題的一個副本: What is the meaning of the prefix N in T-SQL statements?

+0

我對於重複抱歉... :( –

+3

這是不完全正確的Varchar不是ASCII的Varchar是一個8位編碼。它可以存儲ASCII碼,或者可以存儲任何其他8位代碼頁。 – Stainy

+0

謝謝,Stainy - 編輯並在您的評論中標記。 –

1

docs: -

你可能已經看到,繞過使用 字符串的Transact-SQL代碼一個N前綴。 這表示後續字符串是Unicode (N實際上代表國家語言字符集)。其中 表示您傳遞NCHAR,NVARCHAR或NTEXT值,如 與CHAR,VARCHAR或TEXT相反。

2

N表示可以存在給定的字符串在一些Unicode字符。