create proc mypro
@id int
asdeclare @name varchar(100)
declare @TableName varchar(100)
declare @SQLstr varchar(150)set @TableName='Table'+rtrim(ltrim(str(@id)))
select @SQLstr="select"+@name+"=name from "+@TableName+"where flag=0"
exec sp_sqlexec @SQLstr
go
@id int
asdeclare @name varchar(100)
declare @TableName varchar(100)
declare @SQLstr varchar(150)set @TableName='Table'+rtrim(ltrim(str(@id)))
select @SQLstr="select"+@name+"=name from "+@TableName+"where flag=0"
exec sp_sqlexec @SQLstr
go
这样是可以执行,可@name变量没有得到结果呀
@id int
asdeclare @name varchar(100)
declare @TableName varchar(100)set @TableName='Table'+rtrim(ltrim(str(@id)))
select name as @name from @TableName where flag=0
go
照你说的也不行,
它告诉我@TableName对象名不合法,各位老大,帮帮忙了
@id int
asdeclare @name varchar(100)
declare @TableName varchar(100)
declare @SQLstr nvarchar(150) ---nvarcharset @TableName='Table'+rtrim(ltrim(str(@id)))
select @SQLstr="set @name='' select @name=@name+name from '+@TableName+'where flag=0'
exec sp_executesql @SQLstr,N'@name1 varchar(100) output',@name output
select @name
go
select @SQLstr="set @name1='' select @name1=@name1+name from '+@TableName+'where flag=0'