如何将MSSQL中备份的.bak文件中的数据更改为插入数据格式?

问题描述 投票:0回答:0

在 ChatGPT 的帮助下,我收到了下面的代码并正在检查它,但我不知道为什么会发生错误。请帮助我

import pyodbc

conn_str = 'DRIVER={SQL Server};Server=myserver;Database=mydatabase;Trusted_Connection=True'
# create connection
conn = pyodbc.connect(conn_str)

# backup path
backup_file_path = 'D:\\Test.bak'

cursor = conn.cursor()
cursor.execute("CREATE TABLE #TempTable (D VARBINARY(MAX))")

with open(backup_file_path, 'rb') as f:
    backup_data = f.read()
cursor.execute("INSERT INTO #TempTable (D) VALUES (?)", backup_data)

select_query = "SELECT data FROM #TempTable"
for row in cursor.execute(select_query):
    backup_data = row[0].decode('utf-8') 

    table_data = backup_data.split("INSERT INTO ")
    for table_insert in table_data[1:]:
        table_name = table_insert.split()[0]
        values_start_index = table_insert.find("VALUES") + len("VALUES")
        table_values = table_insert[values_start_index:].strip().strip(";")
        insert_script = f"INSERT INTO {table_name} {table_values};"
        print(insert_script)

cursor.execute("DROP TABLE #TempTable")

cursor.close()
conn.close()

文件“D:\Git em

python sql-server pyodbc
© www.soinside.com 2019 - 2024. All rights reserved.