sql - 当我尝试使用 sp_executesql 时,为什么会得到 "Procedure expects parameter ' @statement' of type 'ntext/nchar/nvarchar' ."?

标签 sql sql-server tsql dynamic-sql

为什么我会收到此错误

Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.

当我尝试使用sp_executesql时?

最佳答案

听起来您正在使用 VARCHAR 语句调用 sp_executesql,而实际上它需要是 NVARCHAR。

例如这将给出错误,因为 @SQL 需要为 NVARCHAR

DECLARE @SQL VARCHAR(100)
SET @SQL = 'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL

所以:

DECLARE @SQL NVARCHAR(100)
SET @SQL = 'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL

关于sql - 当我尝试使用 sp_executesql 时,为什么会得到 "Procedure expects parameter ' @statement' of type 'ntext/nchar/nvarchar' ."?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2743890/

相关文章:

sql-server - 我希望在使用数据透视表和动态列名称的查询中使用 0 而不是空值

mysql - 一次更新sql中的3个图像路径

sql - 嵌套 SELECT 语句

sql-server-2005 - 给出 bool 结果的 T-SQL 过程

SQL 连接表命名约定

sql - 关于SQL优化的问题

sql-server - 如何使用 SQLIO 压力测试来定义 SQL 子系统的最大容量?

SQL Management Studio 'View Dependencies' 未列出所有依赖项

Mysql多次限制随机记录

mysql - 在同一个表中同时拥有主键和外键