Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server python从服务器a到服务器b-查询服务器a,插入服务器b_Python_Sql_Sql Server - Fatal编程技术网

SQL Server python从服务器a到服务器b-查询服务器a,插入服务器b

SQL Server python从服务器a到服务器b-查询服务器a,插入服务器b,python,sql,sql-server,Python,Sql,Sql Server,我尝试在两台SQL Server服务器上运行: 在服务器A数据库A上,我正在运行SQL查询以获取一些数据,我现在从查询中获得的数据,我想插入到服务器B数据库B中。(两个都是不同的服务器,不同的SQL用户和pass) 我看了一些例子,但我找不到上面提到的任何方法,所有的方法都是使用相同的服务器,但使用两个不同的数据库。在我的例子中,我有两个不同的服务器,需要在上面插入数据 任何人都可以提供一些示例来帮助我如何查询A并插入B?您应该检查python中的pyodbc连接器。 类似的方法应该会奏效: i

我尝试在两台SQL Server服务器上运行:

在服务器A数据库A上,我正在运行SQL查询以获取一些数据,我现在从查询中获得的数据,我想插入到服务器B数据库B中。(两个都是不同的服务器,不同的SQL用户和pass)

我看了一些例子,但我找不到上面提到的任何方法,所有的方法都是使用相同的服务器,但使用两个不同的数据库。在我的例子中,我有两个不同的服务器,需要在上面插入数据


任何人都可以提供一些示例来帮助我如何查询A并插入B?

您应该检查python中的pyodbc连接器。 类似的方法应该会奏效:

import pyodbc
sqlserver_base_A = pyodbc.connect(driver='{'+sqlserver_driver+'}', server='your_server_A', database='yourDB_A', uid=sqlserver_user, pwd=sqlserver_passwd)
A_cursor = sqlserver_base_A.cursor()

sqlserver_base_B = pyodbc.connect(driver='{'+sqlserver_driver+'}', server='your_server_B', database='yourDB_B', uid=sqlserver_user, pwd=sqlserver_passwd)
B_cursor = sqlserver_base_B.cursor()

query='SELECT * FROM DB_A.schema.TABLE'
A_cursor.execute(query)
rows_A = sqlserver_cursor.fetchall()
for row in rows_A:
    new_query='INSERT INTO DB_B VALUES '+row+';'
    B_cursor.execute(new_query)

sqlserver_base_A.commit()
A_cursor.close()
B_cursor.close()

也许您需要调整查询以插入数据库B,但类似的操作应该可以工作。

是否可以登录服务器B并执行存储过程?在存储过程中,您可以编写逻辑从服务器a读取数据并将其保存在服务器b中。将所有数据从服务器a移到应用程序服务器,并将数据从应用程序服务器返回到服务器b非常容易出错。您可以在数据库中执行此操作。您需要了解有关链接服务器的信息:。