gpt4 book ai didi

python - Pyodbc-如果表存在则不要在 SSMS 中创建

转载 作者:太空狗 更新时间:2023-10-30 01:57:43 26 4
gpt4 key购买 nike

我正在尝试类似的东西:

import pyodbc

cnxn = pyodbc.connect(driver ='{SQL Server}' ,server ='host-MOBL\instance',database ='dbname', trusted_connection = 'yes' )
cursor = cnxn.cursor()


cursor.execute("""SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = N'TableName'""")

def checkTableExists(cnxn, TableName):
cursor = cnxn.cursor()
cursor.execute("""
SELECT COUNT(*)
FROM information_schema.tables
WHERE TABLE_NAME = '{0}'
""".format(TableName.replace('\'', '\'\'')))
if cursor.fetchone()[0] == 1:
cursor.close()
return True

cursor.close()
return False

if checkTableExists == True:
print ("already")
elif checkTableExists == False:
print ("No")

但是没有任何反应,有人可以帮我解决这个问题吗?我正在使用 Micrsoft SQL Server Management Studio 2014 Express 版本。该代码将在 Python 中运行。谢谢

最佳答案

使用内置的 Cursor.tables此检查的方法 - 以下代码示例假定连接和游标已实例化

if cursor.tables(table='TableName', tableType='TABLE').fetchone():
print("exists")
else:
print("doesn't exist")

请注意,这在功能上与查询 INFORMATION_SCHEMA.TABLES 没有区别,但允许不同数据库平台的代码可移植性(并且 IMO 提高了可读性)。

使用 SQL Server Native Client 11.0 和 SQL Server 2014,调用 Cursor.tables 只会执行 sp_tables系统存储过程。

关于python - Pyodbc-如果表存在则不要在 SSMS 中创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36707711/

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