У меня есть несколько бейк-файлов на местном уровне. Каждый Bak-File имеет только одну базу данных, где имя может отличаться, поэтому я сделал кусок кода в Python, который может получить имя базы данных из Bak-File. У меня установлено SQL Server и SQL Server Management Studio (SMSS). Этот код работает, и я проверяю его с одним публичным Bak-file: Stackoverflowmini. < /P>
from sqlalchemy import create_engine, text
driver = 'ODBC Driver 17 for SQL Server'
server = r'.\SQLEXPRESS'
file_path_bak = r'C:\Users\user\Downloads\folder\StackOverflowMini.bak'
# Create engine
master_engine = create_engine(f'mssql+pyodbc://{server}/master?driver={driver}&trusted_connection=yes')
with master_engine.connect() as conn:
result = conn.execute(text(f"RESTORE FILELISTONLY FROM DISK = '{file_path_bak}'"))
database_name = result.fetchone()[0]
# Close the connection with the master database
master_engine.dispose()
< /code>
Теперь я хочу добавить код, который может перечислить таблицы из базы данных и в конечном итоге сохранить таблицы в CSV. Однако, прежде чем я смогу туда добраться, я получу ошибку, и я понятия не имею, как ее решить. IS: < /p>
from sqlalchemy import create_engine, text
driver = 'ODBC Driver 17 for SQL Server'
server = r'.\SQLEXPRESS'
file_path_bak = r'C:\Users\ganes\Downloads\New folder (3)\StackOverflowMini_database.bak'
# Create engine
master_engine = create_engine(f'mssql+pyodbc://{server}/master?driver={driver}&trusted_connection=yes')
with master_engine.connect() as conn:
result = conn.execute(text(f"RESTORE FILELISTONLY FROM DISK = '{file_path_bak}'"))
database_name = result.fetchone()[0]
# Close the connection with the master database
master_engine.dispose()
# Create new engine with the database
db_engine = create_engine(f'mssql+pyodbc://{server}/{database_name}?driver={driver}&trusted_connection=yes')
with db_engine.connect() as conn:
result = conn.execute(
text("""
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
"""))
list_table_names = [row[0] for row in result.fetchall()]
db_engine.dispose()
< /code>
Здесь я получаю следующую ошибку: < /p>
InterfaceError: (pyodbc.InterfaceError) ('28000', '[[ 28000]
[microsoft] [Driver 17 для SQL Server] (SqldriverConnect); 4060); «Dekstop \ user ' BR /> не удалось. />https://sqlalche.me/e/20/rvf5)
Во -первых, я понятия не имею, почему я получаю эту ошибку, так как вход в систему Не нужно (насколько я знаю). Во -вторых, с этим я понятия не имею, как решить это.
Кто -нибудь знает, как это решить?
Подробнее здесь: https://stackoverflow.com/questions/794 ... m-bak-file
Получить имена таблиц баз данных и восстановить базу данных из Bak-File ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Python/SQL - Получить имена таблиц баз данных и восстановить базу данных из Bak -File
Anonymous » » в форуме Python - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Получить имена таблиц баз данных и восстановить базу данных из Bak-File
Anonymous » » в форуме Python - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-