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!
推薦閱讀:
- python調用pymssql包操作SqlServer數據庫的實現
- python 操作sqlite數據庫的方法
- python處理SQLite數據庫的方法
- Python操作PostgreSql數據庫的方法(基本的增刪改查)
- python執行數據庫的查詢操作實例講解