读书人

郁闷这么简单的语句都不能运行,该怎

发布时间: 2012-01-02 22:40:04 作者: rapoo

郁闷,这么简单的语句都不能运行
CREATE proc asx
@tablename varchar(50) ,
as
select * from tablename

GO

exec asx 'orders '
go


提示错误:
服务器: 消息 137,级别 15,状态 2,过程 asx,行 4
必须声明变量 '@tablename '。
服务器: 消息 208,级别 16,状态 1,过程 asx,行 4
对象名 'tablename ' 无效。

请高人指点迷津~

[解决办法]
--表名是变量,需要用动态SQL语句
CREATE proc asx
@tablename varchar(50)
as

declare @sql varchar(8000)

set @sql= 'select * from ' + @tablename

exec (@sql)

GO

exec asx 'orders '
go


[解决办法]
CREATE proc asx @tablename varchar(50)
as
exec( 'select * from '+@tablename )

读书人网 >SQL Server

热点推荐