覆盖同一服务器内的SQL表

覆盖同一服务器内的SQL表,sql,sql-server,Sql,Sql Server,我发现这可以解决我的问题,但我需要一些澄清 我在一台服务器上有两个数据库,一个数据库是备份。我有一个坏表,想用备份数据库中的表替换表值/记录。我可以使用上面链接中的方法吗,还是只有当目标表为空时,我才可以使用“插入到目标中” 我的目标是用备份值覆盖表。因为您的目标是用备份数据库中的表替换整个表,所以您可以截断目标表,然后使用插入…选择从备份表重新加载 您需要注意外键约束截断,因此您需要使用DELETE来清空该表。INSERT INTO将仅插入,如果您希望插入新行并更新现有行而不删除,则可以查看M

我发现这可以解决我的问题,但我需要一些澄清

我在一台服务器上有两个数据库,一个数据库是备份。我有一个坏表,想用备份数据库中的表替换表值/记录。我可以使用上面链接中的方法吗,还是只有当目标表为空时,我才可以使用“插入到目标中”


我的目标是用备份值覆盖表。

因为您的目标是用备份数据库中的表替换整个表,所以您可以
截断目标表,然后使用
插入
选择
从备份表重新加载


您需要注意外键约束<如果FKs引用该表,则不允许使用代码>截断
,因此您需要使用DELETE来清空该表。

INSERT INTO将仅插入,如果您希望插入新行并更新现有行而不删除,则可以查看MERGE语句。您使用的是哪一版本的SQL Server?确切地说,这是我必须做的,把整个桌子放回原处。我没有SQL方面的经验,所以这对我来说是比较新的。如何查看表是否依赖于FK,以及如何在执行截断、插入和选择之前关闭/删除它们。标识引用外键约束的一种方法是使用“EXEC sp_help'dbo.YourTargetTable';”。如果FKs引用该表,只需使用
DELETE
而不是
TRUNCATE
。我的解决方案是只复制原始表中错误的列,而不接触ID列,因此我在加入IDIE的地方只使用了“UPDATE”和“SELECT”以及“JOIN”。