declare @name varchar(10),@s varchar(100) set @name='jobs' set @s='select top 1 * from ' +@name exec(@s)/* job_id job_desc min_lvl max_lvl ------ -------------------------------------------------- ------- ------- 1 New Hire - Job not specified 200 10 */
不支持定义表变量直接赋值,用插入 create table # (a int, b int) insert into # select 1, 2 union all select 2, 3 union all select 3, 3 union all select 4, 2 declare @t table(a int, b int) insert into @t select * from #
set @name='jobs'
set @s='select top 1 * from ' +@name
exec(@s)/*
job_id job_desc min_lvl max_lvl
------ -------------------------------------------------- ------- -------
1 New Hire - Job not specified 200 10
*/
不支持定义表变量直接赋值,用插入
create table #
(a int, b int)
insert into #
select 1, 2 union all
select 2, 3 union all
select 3, 3 union all
select 4, 2 declare @t table(a int, b int)
insert into @t
select * from #
use pubs--创建军存贮过程
create proc prg1
@tablename varchar(20)
as
declare @str varchar(1000)
set @str='select * from ' + @tablename
exec(@str)--调用
exec prg1 'sales'
不知道还有没有其他好方法?
exec @a 不能产生返回啊???,那不是不能用啊??/