ALTER       procedure Sp_Combination_Insert
(
@Title VarChar(50),
@SigleSelectSubjectScore int,
@MoreSelectSubjectScore int,
@DisputeSubjectScore int,
@DisputeTotal varchar(10),
@MoreSelectTotal varchar(10),
@SigleTotal varchar(10),
@CreateTime DateTime,
@whereNodeId varchar(100)
)asdeclare @Sigle varchar(8000)
declare @More varchar(8000)
declare @Dispute varchar(8000)
declare @strsql1 Nvarchar(1000)
declare @strsql2 Nvarchar(1000)
declare @strsql3 Nvarchar(1000)
set @strsql1='select @Sigle=isnull(@Sigle,'','') + rtrim(SigleSelectId) +'','' from (
select top '+@SigleTotal+' SigleSelectId  from SigleSelectSubject where 
 CHARINDEX('','' + CAST( NodeId AS VARCHAR) + '','',@whereNodeId) > 0
order by newid())a'
--exec (@strsql1)
exec sp_executesql @strsql1, N'@Sigle varchar(8000) output', @Sigle output --用sp_executesql
程序运行提示存储过程的错误:必须声名变量@whereNodeId。