首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

查询语句中表是一个变量时,该怎样查询?解决办法

2012-01-13 
查询语句中表是一个变量时,该怎样查询?CREATE PROCEDURE [dbo].[Table_Back]@Table_Name varchar(20)AsBeg

查询语句中表是一个变量时,该怎样查询?
CREATE PROCEDURE [dbo].[Table_Back]
@Table_Name varchar(20)
As
Begin
Declare @DocumentID varchar(30)
Declare @sql nvarchar(500)
set @sql='select @DocumentID=DocumentID from '+@Table_Name+' where id=1'
exec(@sql)
select * from JJGovOA.dbo.Office_Send where DocumentID=@DocumentID
End
GO
有这样一个存储过程,我要把查询的结果赋值给变量@DocumentID,为什么@DocumentID为null呢?记录中是有这么一件记录的.我要如何得到这条记录的DocumentID 字段的值呢?上面存储过程执行出现"必须声明变量 '@DocumentID'。"的错误.为什么呢?

[解决办法]
use sp_executesql

SQL code
CREATE PROCEDURE [dbo].[Table_Back]@Table_Name varchar(20)AsBeginDeclare @DocumentID varchar(30)Declare @sql nvarchar(500)set @sql= 'select  @DocumentID=DocumentID from ' + @Table_Name + ' where id=1'exec sp_executesql @sql, N'@DocumentID varchar(30) OUTPUT',  @DocumentID = @DocumentID OUTPUTselect * from JJGovOA.dbo.Office_Send where DocumentID=@DocumentID End 

热点排行