永发信息网

如何将SQL server数据库中所有表的相同字段做个修改?

答案:3  悬赏:0  手机版
解决时间 2021-07-17 02:03
  • 提问者网友:蓝莓格格巫
  • 2021-07-16 02:57

我的数据库里有很多的表里有相应的三个字段matid,ModelID,ColorID(此三个字段不一定是同时存在于一个表中),我想把所有的这三个字段里有字母为'OO'的改成数字'00'。请高手指教!

最佳答案
  • 五星知识达人网友:底特律间谍
  • 2021-07-16 04:29

用 级联更新 三个表 用 inner join 连接

全部回答
  • 1楼网友:千夜
  • 2021-07-16 07:00

用SP_RENAME '表名。列名' '新列名' COLUMN

我想到的就这种方法。可能还是一样的麻烦。

建议,建议而已!

  • 2楼网友:青尢
  • 2021-07-16 05:36

这是一个查询所有表中所有字段里面包含“a”的语句,你改一下,将执行结果变成一个动态sql,就可以用了。

SELECt a.name AS columnname,object_name(a.id)AS tablename INTO t FROM syscolumns a,

sysobjects b,

systypes c

WHERe a.id=b.id

AND a.xtype=c.xtype

AND b.xtype='u'

AND c.name IN('varchar','nvarchar','char','nchar','text','ntext')

AND object_name(a.id)<>'t'

go

CREATE FUNCTION udf_genSQL(@tableName varchar(1000),@keyword varchar(1000))

returns varchar(8000)

AS

begin

declare @sql varchar(8000)

SET @sql='select * from '+@tableName +' where 1=1 '

SELECt @sql=@sql+' or '+

columnname +' like ''%'+@keyword+'%''' FROM t

WHERe tablename=@tablename

RETURN @sql

end

go

SELECt dbo.udf_genSQL(tableName,'a') FROM t GROUP BY tablename

DROP TABLE t

DROP FUNCTION dbo.udf_genSQL

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯