sql删除表中某一指定数据的方法


  本文标签:SQL 删除

  如果您需要删除SQL数据库所有表的所有字段中含有的某一指定数据, 应该如何做呢?下面就将为您介绍如何使用SQL语句解决这个问题(指定删除的数据为XX),供您参考  。

  1  an   12345    aXX
2  XXb  56789    cXX
.  ...  ...      ...
.. ...  ....      ....
执行后
1  an   12345    a
2  B    56789    c
.  ...  ...      ...
.. ...  ....      ....
声明下 所有表 所有字段 中包含XX 的 

  ——————————————————————————————

  程序代码:

  DECLARE @tabName VARCHAR(40),@colName VARCHAR(40)

  DECLARE @sql VARCHAR(2000)

  DECLARE tabCursor CURSOR FOR
Select name From sysobjects Where xtype = u AND name <> dtproperties

  OPEN tabCursor

  FETCH NEXT FROM tabCursor INTO @tabName
WHILE @@fetch_status = 0
BEGIN
  SET @sql = Update + @tabName + SET
  DECLARE colCursor CURSOR FOR Select Name FROM SysColumns Where id=Object_Id(@tabName)
  OPEN colCursor
  FETCH NEXT FROM colCursor INTO @colName
  WHILE @@fetch_status = 0
  BEGIN
    SET @sql = @sql + @colName + =REPLACE( +@colName+ ,XX,),
    FETCH NEXT FROM colCursor INTO @colName
  END
  SET @sql = LEFT(@sql,LEN(@sql)-1)
  EXEC(@sql)
  CLOSE colCursor
  DEALLOCATE colCursor
  FETCH NEXT FROM tabCursor INTO @tabName
END

  CLOSE tabCursor

  DEALLOCATE tabCursor