首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

可以用一条SQL语句改变整个数据中所有数据库表中的相同字段的值吗?解决方法

2012-05-29 
可以用一条SQL语句改变整个数据中所有数据库表中的相同字段的值吗?可以用一条SQL语句改变整个数据中所有数

可以用一条SQL语句改变整个数据中所有数据库表中的相同字段的值吗?
可以用一条SQL语句改变整个数据中所有数据库表中的相同字段的值吗? 

假如我有一个数据库A 里面有10张表 有的7张表有字段NAME 但是我不知道是哪7张表有这字段 所以我想用一条SQL语句去实现 直接修改掉整个数据中这个字段的值  


[解决办法]

SQL code
EXEC SP_MSFOREACHTABLE 'UPDATE ? SET [NAME]='目标值''
[解决办法]
也可以拼语句,不过要写的比上面多,你要的话可以写给你
[解决办法]
以下语句可以查到是哪几张表中有这个字段
SQL code
SELECT a.name AS Table_Name, b.name AS Column_Name, c.name AS Variable_Type, b.xtype, b.xusertype, b.lengthFROM  sys.sysobjects AS a WITH (nolock) INNER JOIN sys.syscolumns AS b WITH (nolock) ON b.id = a.id LEFT OUTER JOIN sys.systypes AS c WITH (nolock) ON b.xtype = c.xtype AND b.xusertype = c.xusertypeWHERE (a.type = 'U') and b.name='你要找的列名'
[解决办法]
EXEC sp_MSforeachtable @whereand='and exists(select * from syscolumns where id = o.id and name = ''name'')',
@replacechar='*',
@precommand='print ''Updating .....''',
@command1='print ''*'' update * set name = ''&*%^%##''',
@postcommand= 'print ''Complete Update !'''



[解决办法]
SQL code
EXEC sp_MSforeachtable @whereand='and exists(select * from syscolumns where id = o.id and name = ''name'')',  @replacechar='*',  @precommand='print ''Updating .....''',  @command1='print ''*'' update * set name = ''&*%^%##''',  @postcommand= 'print ''Complete Update !'''
[解决办法]
把以下语句的执行结果Copy出来执行一次就能达到你的要求了
SQL code
SELECT a.name AS Table_Name, b.name AS Column_Name, c.name AS Variable_Type, b.xtype, b.xusertype, b.lengthinto #tempFROM  sys.sysobjects AS a WITH (nolock) INNER JOIN sys.syscolumns AS b WITH (nolock) ON b.id = a.id LEFT OUTER JOIN sys.systypes AS c WITH (nolock) ON b.xtype = c.xtype AND b.xusertype = c.xusertypeWHERE (a.type = 'U') and b.name='你要找的列名'select 'update '+Table_Name+' set '+Column_Name+'=''字段要改成的值''' from #temp
[解决办法]
学习了

热点排行