多个相同结构表查询后delete的问题

drifter250771 2011-05-28 11:46:20
http://topic.csdn.net/u/20110527/00/5d474a6b-274b-41fb-b1b9-00a2c9f9a563.html

多个相同结构表查询的问题,已成功解决。

现在要把操作换成delete,求解。
...全文
118 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
drifter250771 2011-05-28
  • 打赏
  • 举报
回复
一三四楼都是select *到delete的简单替换,这是无效的,要不然我也不会发贴了。

二楼代码不完整,条件where FDNM=123456都没有,我就没测试。

五楼代码测试结果是:delete仅仅对最后一张TBNM****表进行了操作,前面的表都没动。
ly745455 2011-05-28
  • 打赏
  • 举报
回复
MARK
快溜 2011-05-28
  • 打赏
  • 举报
回复
declare @sql varchar(8000)
set @sql=''
select
@sql=' delete from '+'['+name+']'+'where FDNM=123456'
from sysobjects
where xtype= 'U' and name like 'TBNM%'

exec (@sql)
打一壶酱油 2011-05-28
  • 打赏
  • 举报
回复
--还是改成 max 比较好
declare @sql varchar(max)
select
@sql=isnull(@sql+'union all select * from ','select * from ')+'['+name+']'
from sysobjects
where xtype= 'U' and name like 'TBNM%'

set @sql=' delete from from ('+@sql+') t where FDNM=123456'


exec (@sql)
打一壶酱油 2011-05-28
  • 打赏
  • 举报
回复
declare @sql varchar(8000)
select
@sql=isnull(@sql+'union all select * from ','select * from ')+'['+name+']'
from sysobjects
where xtype= 'U' and name like 'TBNM%'

set @sql=' delete from from ('+@sql+') t where FDNM=123456'


exec (@sql)
叶子 2011-05-28
  • 打赏
  • 举报
回复

declare @sql varchar(8000)
select
@sql=isnull(@sql+'; delete from ','delete from ')+'['+name+']'
from sysobjects
where xtype= 'U' and left(name,4)='TBNM'

--select @sql
/*
delete from [TBNM1]; delete from [TBNM2]; delete from [TBNM5]
*/
exec (@sql)
快溜 2011-05-28
  • 打赏
  • 举报
回复
declare @sql varchar(8000)
select
@sql=isnull(@sql+'union all select * from ','select * from ')+'['+name+']'
from sysobjects
where xtype= 'U' and name like 'TBNM%'

set @sql='delete from ('+@sql+') t where FDNM=123456'

--print @sql

exec (@sql)
drifter250771 2011-05-28
  • 打赏
  • 举报
回复
问题解决,感谢各位,结贴!
btxp163 2011-05-28
  • 打赏
  • 举报
回复
涩狼、小三都关注了,那咱只有打酱油的份了


缺分……
AcHerat 元老 2011-05-28
  • 打赏
  • 举报
回复

--05

declare @sql varchar(8000)
select @sql = isnull(@sql+' ','') + ' delete from ' + [name] + ' where FDNM=123456'
from sysobjects
where xtype= 'U' and name like 'TBNM%'
exec (@sql)

快溜 2011-05-28
  • 打赏
  • 举报
回复
declare @sql varchar(8000)
set @sql=''
select --忘记加了
@sql=@sql+' delete from '+'['+name+']'+'where FDNM=123456'
from sysobjects
where xtype= 'U' and name like 'TBNM%'

exec (@sql)
drifter250771 2011-05-28
  • 打赏
  • 举报
回复
没有更多的人来关注了吗?

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧