如果任何单元格包含值x,如何从表中删除记录?

时间:2018-04-03 09:37:17

标签: sql-server

我有一张表dbo.tblCars,外键很少。不幸的是,有些行已损坏,我在多列的某些单元格中获得'00000000-0000-0000-0000-000000000000'以获取某些记录。

如果其中的任何单元格包含值'00000000-0000-0000-0000-000000000000',则从表中删除记录的最简单方法是什么?

1 个答案:

答案 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)