(转)SQL语句中的N'xxxx'是什么意思

SQL语句中的N'xxxx'是什么意思

我们在一些sql存储过程,触发器等中经常会见到类似 N'xxxx' 是什么意思?

例如:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_getProByIdAndName]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[sp_getProByIdAndName]

REPLACE(@pstrin, N''''N'''''')

-----------------------------------------------------------------------------------------------------------------------

Answer:

N'xxx' 标识将单引号中的xxx强制转换为Unicode编码的字符,不用在中文情况下会出现乱码.

因为在英文中常用的是ASCII码(一个字符占一个字节),而我们用的中文一个汉字就要占两个字节所以要用N'xxx'强制转换为Unicode编码的字符,这样单引号中不管是英文字符还是汉字一个都占两个字节,统一起来,不会出现乱码!

posted @ 2014-11-28 11:03  wanshutao  阅读(713)  评论(0编辑  收藏  举报