首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么我得到"Procedure parameter '@statement‘类型为’ntext/nchar/nvarchar‘。“当我尝试使用sp_executesql时?

为什么我得到"Procedure parameter '@statement‘类型为’ntext/nchar/nvarchar‘。“当我尝试使用sp_executesql时?
EN

Stack Overflow用户
提问于 2010-04-30 18:41:42
回答 3查看 124.1K关注 0票数 96

为什么会出现此错误

过程需要'ntext/nchar/nvarchar‘类型的参数'@statement’。

当我尝试使用sp_executesql

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-04-30 18:47:11

听起来像是在使用VARCHAR语句调用sp_executesql,而它需要是NVARCHAR语句。

例如,这将产生错误,因为@SQL需要为NVARCHAR

代码语言:javascript
复制
DECLARE @SQL VARCHAR(100)
SET @SQL = 'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL

所以:

代码语言:javascript
复制
DECLARE @SQL NVARCHAR(100)
SET @SQL = 'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL
票数 220
EN

Stack Overflow用户

发布于 2010-04-30 18:51:23

解决方案是将N放在类型和SQL字符串的前面,以指示它是双字节字符串:

代码语言:javascript
复制
DECLARE @SQL NVARCHAR(100) 
SET @SQL = N'SELECT TOP 1 * FROM sys.tables' 
EXECUTE sp_executesql @SQL
票数 23
EN

Stack Overflow用户

发布于 2020-02-14 17:03:27

我遗漏了另一个小细节:我忘记了NVARCHAR后面的括号"(100)“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2743890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档