Chinaunix首页 | 论坛 | 博客
  • 博客访问: 220983
  • 博文数量: 70
  • 博客积分: 1415
  • 博客等级: 上尉
  • 技术积分: 920
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-08 11:53
文章分类

全部博文(70)

文章存档

2011年(1)

2010年(69)

我的朋友

分类: 数据库开发技术

2010-12-07 10:38:10

在SQL语句中,String前出现的N''标示,作用是著名被标注的字符串是Unicode编码。一般情况下都表明你试图将NCHAR, NVARCHAR or NTEXT 的值类型转换为(或复值到) CHAR, VARCHAR or TEXT中。

另外,有些SQL系统存储过程的参数需要用Unicode编码的值作为参数。

如果当你输入

EXEC sp_ExecuteSQL 'SELECT 1'

会有以下错误:

Server: Msg 214, Level 16, State 2, Procedure sp_executesql, Line 1
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.

正确的方法是:

-- (a) using the N prefix

EXEC sp_ExecuteSQL N'SELECT 1'

-- (b) using a variable

DECLARE @sql NVARCHAR(100)
SET @sql = N'SELECT 1'
EXEC sp_ExecuteSQL @sql

阅读(1508) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~