项目一、方法:
恢复数据库之前的备份,导出数据插入到新建表。
use 数据库
go
update table set IsDelete =b.IsDelete from table a,table b where a.ID =b.ID
SQL Server:批量更新数据库中所有表的某个相同字段
在做项目的过程中,有时候需要手动对数据库中的一些表或所有表中的某几个相同字段的值进行更新。假如,只有几张表的话,写的几个更新语句也是很快的,但是,当的表的数量超过十张以上,写起来就比较烦,都是一些重复的劳动,也没意思。因此,想到写一小段SQL脚本来自动更新哪些字段的值。
CREATE PROCEDURE [dbo].[Sp_replace_field_value](@fieldName VARCHAR(90),
@oldValue
VARCHAR(90),
@newValue
VARCHAR(90))
AS
DECLARE @tableName VARCHAR(100)
DECLARE @sqlStmt VARCHAR(100)
BEGIN
DECLARE tablenamecursor CURSOR FOR
SELECT col.table_name
FROM
information_schema.columns col,
information_schema.tables tab
WHERE
col.table_name = tab.table_name
AND tab.table_type = 'BASE TABLE'
AND col.column_name = @fieldName
ORDER
BY col.table_name
OPEN tablenamecursor
WHILE 1 = 1
BEGIN
FETCH next FROM tablenamecursor INTO @tableName
IF @@fetch_status <> 0
BREAK
ELSE
BEGIN
SET @sqlStmt = 'update ' + @tableName + ' set ' + @fieldName
+ ' = ' + @newValue + ' where ' + @fieldName +
' = ' + @oldValue
PRINT @sqlStmt
EXEC(@sqlStmt)
END
END
CLOSE tablenamecursor
DEALLOCATE tablenamecursor
END