主题:N''代表什么意思?谢谢
imoney
[专家分:0] 发布于 2005-11-11 14:26:00
N'代表什么意思?在什么样的情况下前面才加这个N'?谢谢了,如下面例子:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_IP2Int]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[f_IP2Int]
GO
回复列表 (共4个回复)
沙发
imoney [专家分:0] 发布于 2005-11-11 16:00:00
它怎么就没有人回答尼?
板凳
fately [专家分:20] 发布于 2005-11-11 16:45:00
代表的是内容已经使用了统一编码,如果你的机器是简体,执行insert '簡體'这样的操作,你会发现select出来是乱码,使用了N'簡體'才能正常显示数据
3 楼
cwb1128 [专家分:3120] 发布于 2005-11-12 08:14:00
在编写可以在各种语言之间移植的 Transact-SQL 代码时,最简单最直接的方法是使用 Unicode 数据类型来表示和存储字符数据。这意味着您应该使用 nchar 来代替 char,使用 nvarchar 来代替 varchar,以及使用 ntext 来代替 text。尽管使用 Unicode 数据类型会在可存储的字符串的长度方面有所限制,并且可能比使用非 Unicode 类型稍微慢一些和麻烦一些,但它仍不失为处理语言可移植性问题的最简单方法,并且是唯一的、无须考虑其他编码注意事项就能行得通的解决方案。
在采用这一方法时,必须按照联机图书主题“Using Unicode Data”(使用 Unicode 数据)中所规定的那样,小心地在 Unicode 字符串常量前面加上一个大写字母 N 前缀。
不这样做将导致 SQL Server 在使用相应的字符串之前将其转换为当前数据库的非 Unicode 代码页.
4 楼
chaoyun2004 [专家分:400] 发布于 2005-11-17 17:20:00
N'FN', N'IF', N'TF'
将后面字符串中的字符转换为Unicode字符.
我来回复