郁闷,这么简单的语句都不能运行
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 )