SQL Server T-SQL中字符串文本的N前缀是什么意思?

5

这可能是一个初学者的问题,但我在这里找到了一些使用SELECTWHERE子句验证数据库大小的T-SQL查询示例(链接在此)

以下是代码:

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

我的问题是,在WHERE name = N'keyword'子句中,N前缀是什么意思?

以前我总是使用WHERE name = 'keyword',但我没有发现任何区别(你可以自己试试)。

我已经搜索过了,但我不知道我应该搜索什么关键词。

4个回答

5

3
这并不完全正确。Varchar 不是 ASCII 编码,而是8位编码。它可以存储 ASCII,也可以存储任何其他8位代码页。 - Stainy

2

来自文档

您可能已经见过使用 N 前缀传递字符串的 Transact-SQL 代码。这表示后续的字符串是 Unicode 编码(N 实际上代表国家语言字符集)。 这意味着您正在传递一个 NCHAR、NVARCHAR 或 NTEXT 值,而不是 CHAR、VARCHAR 或 TEXT。


2

N表示给定字符串中可能会有一些Unicode字符。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接