sql语句_实现查询库中所有表的所有字段中包含XX的删除

来源:百度知道 编辑:UC知道 时间:2024/06/08 16:57:23
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(200)

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(@sq