ALTER procedure [dbo].[mProcForQueryMM]
@everyTable varchar(50),
@temTable varchar(50)
as
set nocount on
declare @sql varchar(2000)
declare @count varchar(500)
declare @i int if (exists(select * from sysobjects where name=@everyTable and xtype='U') and @everyTable !=@temTable)
begin
if (not exists(select * from sysobjects where name =@temTable))
begin
set @sql='select [序号],[ItemNumber],[Description],[quantity],[um],[Res],[P/M],[Supplier],[BTO/BTS],[交货周期] into '
set @sql=@sql+@temTable+' from '+@everyTable+' where 1=0 '
exec(@sql)
end set @sql='select @count=count(*) from '+@everyTable+' where [P/M]=''P'' or [P/M]=''M'''
exec sp_executesql @sql,N'@count int output',@count output
print @count
end运行结果:过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。
什么原因啊?
@everyTable varchar(50),
@temTable varchar(50)
as
set nocount on
declare @sql varchar(2000)
declare @count varchar(500)
declare @i int if (exists(select * from sysobjects where name=@everyTable and xtype='U') and @everyTable !=@temTable)
begin
if (not exists(select * from sysobjects where name =@temTable))
begin
set @sql='select [序号],[ItemNumber],[Description],[quantity],[um],[Res],[P/M],[Supplier],[BTO/BTS],[交货周期] into '
set @sql=@sql+@temTable+' from '+@everyTable+' where 1=0 '
exec(@sql)
end set @sql='select @count=count(*) from '+@everyTable+' where [P/M]=''P'' or [P/M]=''M'''
exec sp_executesql @sql,N'@count int output',@count output
print @count
end运行结果:过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。
什么原因啊?
declare @sql varchar(2000)改为:
declare @sql nvarchar(2000)