• 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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    上面的代码就是通用连接SqlServer数据库,并添加报错信息等
    接下来说说SQL语句

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

    这个方法确实可以获取表名,但不会按照顺序输出
    我需要查询的表
    顺序被打乱
    第二种方法:

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

    运行结果
    可以看到将我们所需要的列名全部放入COLUMN_NAME中,我们只需要SELECT的一下就好了

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

    与原来的一摸一样
    如果不在乎是否按照顺序排列,可以选择第一种,如果需要其他用途的可以选择第二种
    再回头来说下python里面,python在

    cursor.execute()
    
    • 1

    之后会返回的是结果
    如果想要看到获取的最终结果 需要使用**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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    在这里插入图片描述
    返回的是一个含多个元组的列表

  • 相关阅读:
    C++的std::function
    【Java愚公】idea打开svn项目看不到Subversion
    【Linux operation 39】Linux 运行级别
    设计模式笔记 ——1(结构体的私有属性)
    驱动开发 DAY1 外部传参Makefile编写
    「数据结构详解·五」链表
    [单片机框架][bsp层][N32G4FR][bsp_gpio] GPIO配置和使用
    【笔记】电商订单数据分析实战
    CAD中图纸比较功能怎么用
    springboot福佳生活超市进销存管理系统毕业设计源码261620
  • 原文地址:https://blog.csdn.net/KIKI_ZSH/article/details/126524408