消息 xxx,级别 16,状态 x,过程 sp_executesql,第 x 行 过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。

时间:2021-01-15 08:43:37

消息 xxx,级别 16,状态 x,过程 sp_executesql,第 x 行

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

原来的语句:

declare @createtablestr varchar(2000)

set  @createtablestr='    CREATE TABLE...

修改为

declare @createtablestr Nvarchar(2000)

set  @createtablestr='    CREATE TABLE...

要不然在执行存储过程变量前加N''
ALTER PROCEDURE [dbo].[aaaaaaaaproc]
as
BEGIN
--这里,varchar要改为nvarchar(4000)
declare @Sql nvarchar(4000)
SET @Sql = N' select * from a_table ' -- Insert statements for procedure here
exec sp_executesql @Sql
select @Sql as '@Sql'
END
--执行如下
USE [aaaaa]