比如:declare @classid int
declare @name varchar(50)
declare @sql varchar(200)set @classid = 2 --这个本来是查询结果,这里简化直接赋值。
set @sql = 'select @name = name from class' + CAST(@classid AS varchar(20)) + ' where studentid = 0'exec sp_executesql @sql
go执行结果出错:必须声明变量 '@name'。我试过定义游标的方法,也出现同样结果,应该如何解决?
谢谢!
declare @name varchar(50)
declare @sql varchar(200)set @classid = 2 --这个本来是查询结果,这里简化直接赋值。
set @sql = 'select @name = name from class' + CAST(@classid AS varchar(20)) + ' where studentid = 0'exec sp_executesql @sql
go执行结果出错:必须声明变量 '@name'。我试过定义游标的方法,也出现同样结果,应该如何解决?
谢谢!
第 7 行: 'varchar' 附近有语法错误。
USE [PMSMRT1] ;
DECLARE @var1 varchar(50);
declare @sql nvarchar(200)
set @sql = 'SELECT @tmpvar1 = AdminName
FROM Admin
where adminid = 5'
exec sp_executesql @sql , N'@tmpvar1 varchar(50) output', @var1 output
print @var1
go
主要是sp_executesql 的第三个参数前面已经定义类型,这里不需要(或者也不能)指定变量的类型。