【求助】如何对返回的结果做操作?
- SQL code
select * from sysobjects where id in (select id from syscolumns where name= 'approvedate')
这样我会得到很多表名如何将这些表依次执行下面的删除操作?
- SQL code
declare @k datetime declare @j datetime set @k='2009-04-20 10:10:11.000' set @j='2009-04-23 19:53:11.000'delete FROM RegisterReportWHERE approveDateBETWEEN @k AND @j;
[解决办法]
少改一个位置,a.Name=表名
- SQL code
declare @k datetime declare @j datetime set @k='2009-04-20 10:10:11.000' set @j='2009-04-23 19:53:11.000'--delete FROM RegisterReport--WHERE approveDate--BETWEEN @k AND @j;--生成语句直接执行select ' delete 'a.+name+' where approvedate between '''+CONVERT(varchar(23),@k,120)+''' and '''+CONVERT(varchar(23),@k,120)+''' ;'from sysobjects as a,syscolumns as b where a.id=b.id and b.name='approvedate'--或用变量传参一次执行declare @s nvarchar(max)select @s=@s+' delete '+a.name+' where approvedate between '''+CONVERT(varchar(23),@k,120)+''' and '''+CONVERT(varchar(23),@k,120)+''' ;'from sysobjects as a,syscolumns as b where a.id=b.id and b.name='approvedate'exec(@s)