Nea*_*uis 7 python sql sql-server pyodbc python-db-api
一年多以前,有人问过这个问题:执行.sql文件,用于在python中的SQL Management Studio中运行.
我正在python中编写一个连接到SQL服务器的脚本,并根据大(几GB).sql文件中的SQL命令创建和填充数据库.
看起来SQLCMD需要下载并安装SQL Server Express.有没有其他方法从python执行.sql文件,而不需要使用我的脚本的每个人下载和安装SQL Server?pyodbc有这种能力吗?
编辑:
这是另一个类似的问题: 使用python MySQLdb执行*.sql文件
在这里,解决方案是从命令(在本例中为mysql.exe)调用实用程序,并将该文件作为参数列出.
在我看来应该有一种方法来使用Python的DB API库之一,但我还没有找到它所以我正在寻找像我可以用来运行文件的SQLCMD或MYSQL这样的*.exe从命令行.
PS如果我没有正确地看这个,请随时纠正我.也许下面的代码与从命令行运行一样有效:
for line in open('query.sql','r'):
cursor.execute(line)
Run Code Online (Sandbox Code Playgroud)
Nea*_*uis 13
我发现在python中读取文件并使用pyodbc批量执行比在外部使用SQLCMD实用程序更快(并且我不必在运行脚本的每台计算机上安装SQLCMD!).
这是我使用的代码(因为pyodbc似乎没有executescript()方法):
with open(scriptPath, 'r') as inp:
for line in inp:
if line == 'GO\n':
c.execute(sqlQuery)
sqlQuery = ''
elif 'PRINT' in line:
disp = line.split("'")[1]
print(disp, '\r')
else:
sqlQuery = sqlQuery + line
inp.close()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24490 次 |
| 最近记录: |