我刚刚在我的机器上创建了一个空数据库。我现在希望将一个表从我们的服务器数据库复制到这个本地数据库。
我需要运行哪些sql命令才能执行此操作?我希望创建新表,从旧表复制数据并将其插入新表。
答案 0 :(得分:26)
Create a linked server到源服务器。最简单的方法是右键单击Management Studio中的“链接服务器”;它在管理层 - >服务器对象。
然后,您可以使用由4个部分组成的名称server.database.schema.table
复制表格:
select *
into DbName.dbo.NewTable
from LinkedServer.DbName.dbo.OldTable
这将创建具有与原始表相同结构的新表,并复制数据。
答案 1 :(得分:7)
假设他们在同一台服务器上,请尝试:
SELECT *
INTO SecondDB.TableName
FROM FirstDatabase.TableName
这将创建一个新表,只是将数据从FirstDatabase.TableName
复制到SecondDB.TableName
,不会创建外键或索引。
答案 2 :(得分:7)
另一种可用于将表从源数据库复制到目标数据库的方法是SQL Server导出和导入向导,该向导可在SQL Server Management Studio中使用。
您可以选择从源数据库导出或从目标数据库导入,以便传输数据。
如果您安排复制与表的关系和订单无关的表,则此方法是将表从源数据库复制到目标数据库的快速方法。
使用此方法时,不会传输表的索引和键。如果您有兴趣复制它,则需要为这些数据库对象生成脚本。
如果这些是外键,将这些表连接在一起,则需要以正确的顺序导出数据,否则导出向导将失败。
在本文中,您可以随意阅读有关此方法的更多信息,以及更多方法(包括生成脚本,SELECT INTO和第三方工具): https://www.sqlshack.com/how-to-copy-tables-from-one-database-to-another-in-sql-server/
答案 3 :(得分:6)
SELECT ... INTO:
select * into <destination table> from <source table>
答案 4 :(得分:5)
INSERT INTO ProductPurchaseOrderItems_bkp
(
[OrderId],
[ProductId],
[Quantity],
[Price]
)
SELECT
[OrderId],
[ProductId],
[Quantity],
[Price]
FROM ProductPurchaseOrderItems
WHERE OrderId=415
答案 5 :(得分:5)
如果在两个数据库之间不断迁移,则插入已存在的表结构是可能的。如果是,那么:
使用以下语法:
insert into DESTINATION_DB.dbo.destination_table
select *
from SOURCE_DB.dbo.source_table
[where x ...]
如果要迁移大量表(或具有外键约束的表),我建议:
希望它有所帮助!
答案 6 :(得分:2)
假设您需要表格的不同名称。
如果您使用的是PHPmyadmin,则可以在菜单中使用其SQL选项。然后,您只需从第一个表中复制SQL代码并将其粘贴到新表中。
当我从localhost迁移到webhost时,这对我有用。 希望它适合你!
答案 7 :(得分:1)
最快的方法是使用RazorSQL或Toad这样的工具。
答案 8 :(得分:1)
如果您需要整个表格结构(而不仅仅是基本数据布局),请使用 Task>Script Table As>Create To>New Query Window
并在新数据库中运行。然后,您可以随意复制数据。