注册 登录
编程论坛 SQL Server论坛

求助SQL语句理解

lhj2005 发布于 2007-09-24 08:54, 674 次点击
if exists (select * from table1 where object_id = OBJECT_ID(N'P_table2') and type in (N'P', N'PC'))
............


请问后面 N'P_table2' 和 N'P', N'PC' 是什么意思????
8 回复
#2
西风独自凉2007-09-24 09:01
服务器上执行的代码中(例如在存储过程和触发器中)显示的 Unicode 字符串常量必须以大写字母 N 为前缀。即使所引用的列已定义为 Unicode 类型,也应如此。如果不使用 N 前缀,字符串将转换为数据库的默认代码页。这可能导致不识别某些字符。
#3
lhj20052007-09-24 09:02
太深奥了,不好意思,能说的简单点吗?

或则举个例子

[此贴子已经被作者于2007-9-24 9:06:03编辑过]

#4
西风独自凉2007-09-24 09:06

意思就是說防止某些字符不能识别。。。没别的意思。。。

#5
purana2007-09-24 09:06

对的.

#6
lhj20052007-09-24 09:07
N'P_table2'是针对这个table2表的,

那N'P', N'PC' 这个又是什么意思?
#7
西风独自凉2007-09-24 10:20
select * from sysobjects where type='P' or type='PC'

你这样去后执行一次。。。也许你就明白了。。
#8
thllilac2007-09-24 10:51
N'PC'
PC就是字段type的值了,而N仅仅一个标识而已,像P就表示存储过程,U表示用户表
select name,xtype from sysobjects 看看
#9
胡桂生2007-09-26 21:28
Unicode常量的表示方法与字符串常量的表示方法相同,只是Unicode常量必须有一个大写的N来区别字符串常量,Unicode采用双字节字符编码标准,一个字符占两个字节。
1