declare @db varchar(20),@km varchar(20),@str varchar(200)
select @db='F21'
select @km='F21..tb_f_vcdata'
SET @str='select * from '+@km+' where vcyer=2003'
exec(@str)
select @db='F21'
select @km='F21..tb_f_vcdata'
SET @str='select * from '+@km+' where vcyer=2003'
exec(@str)
select @km='F21..tb_f_vcdata'
Exec('select * from '+ @km + ' where vcyer = 2003')
select @db='F21'
select @km='F21..tb_f_vcdata'
exec('select * from ['+@km+' where vcyer=2003')
select @db='F21'
select @km='F21..tb_f_vcdata'
exec ('select * from '+@km+' where vcyer=2003')
给你一个例题
create table aii (i datetime,di varchar(100))
insert into aii select '20030918','hn'
insert into aii select '20030918','hn'
insert into aii select '20030901','hn'
insert into aii select '20031001','gd'
insert into aii select '20031001','gd'
gocreate table ai (i datetime,di varchar(100))
insert into ai select '20030918','hn'
insert into ai select '20030918','hn'
insert into ai select '20030901','hn'
insert into ai select '20031001','gd'
insert into ai select '20031001','gd'
gocreate proc proc_1
@stime datetime,@etime datetime,@di varchar(100),@tablename nvarchar(100)
as
declare @sql nvarchar(4000)
select @sql='select * from '+@tablename+' where i BETWEEN @stime and @etime and di=@di'
print @sql
exec sp_executesql @sql,
N'@stime datetime,@etime datetime,@di varchar(100)',
@stime=@stime,@etime=@etime,@di=@digoexec proc_1 '2003/09/01','2003/10/01','hn','ai'
go
exec proc_1 '2003/09/01','2003/10/01','hn','aii'
go