gpt4 book ai didi

python - 使用 Python 在 SQL Server 中将表从一个数据库复制到另一个数据库

转载 作者:搜寻专家 更新时间:2023-10-30 19:45:09 28 4
gpt4 key购买 nike

有人知道可以在 SQL Server 中将大量表(大约 100 个表)从一个数据库复制到另一个数据库的优秀 Python 代码吗?

请问有没有办法用Python实现,因为我工作单位的限制,我不能单独在SQL Server内部跨数据库复制表。

这是一个简单的 Python 代码,可将一个表从一个数据库复制到另一个数据库。想复制100张表,有没有更好的写法。

print('Initializing...')

import pandas as pd
import sqlalchemy
import pyodbc

db1 = sqlalchemy.create_engine("mssql+pyodbc://user:password@db_one")
db2 = sqlalchemy.create_engine("mssql+pyodbc://user:password@db_two")

print('Writing...')

query = '''SELECT * FROM [dbo].[test_table]'''
df = pd.read_sql(query, db1)
df.to_sql('test_table', db2, schema='dbo', index=False, if_exists='replace')

print('(1) [test_table] copied.')

最佳答案

SQLAlchemy 实际上是一个很好的工具,可以用来在第二个数据库中创建相同的表:

table = Table('test_table', metadata, autoload=True, autoload_with=db1)
table.create(engine=db2)

此方法还将生成正确的键、索引、外键。创建所需的表后,如果表相对较小,则可以通过选择/插入来移动数据,或者使用 bcp 实用程序将表转储到磁盘,然后将其加载到第二个数据库中(速度更快,但要完成更多工作)正常工作)

如果使用 select/insert,最好分批插入 500 条左右的记录。

关于python - 使用 Python 在 SQL Server 中将表从一个数据库复制到另一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46942301/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com