exec('declare @tablename char(10)
select @tablename='yy20021025'
declare yyCur cursor for
select kh,jylx,ckjh,clsj,cc from '+@tablename+' where scbz=0
for read only.....')
select @tablename='yy20021025'
declare yyCur cursor for
select kh,jylx,ckjh,clsj,cc from '+@tablename+' where scbz=0
for read only.....')
exec('declare @tablename char(10)
select @tablename='yy20021025'
declare yyCur cursor for
select kh,jylx,ckjh,clsj,cc from '+@tablename+' where scbz=0
for read only')因为exec('...')是一个独立的匿名存储过程,你必须保证它的完整!如:
exec('
declare @aa int;
set @aa=1;
select @aa
')
select @aa
------^^^^报错!
select @tablename=''yy20021025''')才行运行 exec('declare @tablename char(10)
select @tablename='yy20021025'
declare yyCur cursor for
select kh,jylx,ckjh,clsj,cc from '+@tablename+' where scbz=0
for read only')
会提示 'yy20021025' 附近有语法错误
declare @TableName varchar(200)
declare @Sql varchar(200)
set @TableName = 'Medicineinfo'
set @Sql='select * from ' +@TableName
exec(@Sql)
楼上几种写法有点错误
当然解释是对的
如下:
declare @tablename char(10)--最好用varchar
declare @Sql varchar(200)
select @tablename='yy20021025'
set @Sql='select kh,jylx,ckjh,clsj,cc from '+@tablename+' where cbz=0 '
declare yyCur cursor for
exec(@Sql)
for read only