python操作SqlServer獲取特定表的所有列名(推薦)

在網上搜過大多數資料,發現並不能按照自己的意願實現最後的結果
這裡我使用兩種方法,來實現結果,分別向大傢展示下 不同方法所帶來的結果。
python連接sqlserver數據庫代碼

# 引入庫
import pyodbc
import pymssql
from sqlalchemy import create_engine

# 連接數據庫
conn = pyodbc.connect(r'Driver={SQL Server};Server=服務器名;Database=數據庫名;Trusted_Connection=yes;')
cursor = conn.cursor()
sqlstr = ''
try:
	a = cursor.execute(sqlstr)
	conn.commit()
except Exception as e:
	print(e)
finally:
	conn.close()

上面的代碼就是通用連接SqlServer數據庫,並添加報錯信息等
接下來說說SQL語句

SELECT Name FROM SysColumns Where id=Object_Id('表名')

這個方法確實可以獲取表名,但不會按照順序輸出

第二種方法:

SELECT * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = '表名'

運行結果

可以看到將我們所需要的列名全部放入COLUMN_NAME中,我們隻需要SELECT的一下就好瞭

SELECT COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = '表名'

與原來的一摸一樣

如果不在乎是否按照順序排列,可以選擇第一種,如果需要其他用途的可以選擇第二種
再回頭來說下python裡面,python在

cursor.execute()

之後會返回的是

結果

如果想要看到獲取的最終結果 需要使用**fetchall()**返回所有 **fetchone()**返回單個,並且conn.commit()需寫在查詢之後
如下

import pyodbc
import pymssql
from sqlalchemy import create_engine

# 連接數據庫
conn = pyodbc.connect(r'Driver={SQL Server};Server=服務器名;Database=數據庫名;Trusted_Connection=yes;')
cursor = conn.cursor()
sqlstr = "SELECT COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = '表名'"
try:
	# 使用fetchall()獲取全部
	a = cursor.execute(sqlstr)
	col_name = a.fetchall()
	print(col_name)
	conn.commit()
except Exception as e:
	print(e)
finally:
	conn.close()

在這裡插入圖片描述

返回的是一個含多個元組的列表

到此這篇關於python操作SqlServer獲取特定表的所有列名的文章就介紹到這瞭,更多相關python SqlServer所有列名內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: