我有一张表dbo.tblCars
,外键很少。不幸的是,有些行已损坏,我在多列的某些单元格中获得'00000000-0000-0000-0000-000000000000'
以获取某些记录。
如果其中的任何单元格包含值'00000000-0000-0000-0000-000000000000'
,则从表中删除记录的最简单方法是什么?
答案 0 :(得分:1)
您可以使用如下的动态SQL
declare @query varchar(max)
select @query =
Stuff((
select 'OR '+ 'cast('+c.name+' as varchar(max)) =''00000000-0000-0000-0000-000000000000'' '
from
sys.columns c
join sys.tables t on t.object_id=c.object_id
and t.name ='dbo.tblCars'
for xml path('')
),1,2,'')
set @query = 'select * from dbo.tblCars where '+ @query
exec (@query)