消息 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]