Sql 获取所有数据,但忽略自动递增的列

Sql 获取所有数据,但忽略自动递增的列,sql,asp.net,sql-server,Sql,Asp.net,Sql Server,我正在努力创建一个查询,该查询将返回SELECT*等表中的所有信息,但我想省略自动递增的列 原因是,我使用SELECT*显示所有数据,因为我并不总是知道网格视图控件中有哪些列可用,然后我打开表以允许执行更新。但是,这也会打开指定为自动增量的列进行编辑,并阻止更新查询工作 到目前为止,我找到了'sys.columns.is_identity'表,它似乎在某种程度上会有所帮助,我只是不知道如何将它与动态选择结合使用。 应该注意的是,这些列并不总是已知的,因此我使用SELECT*来检索最初需要的数据。

我正在努力创建一个查询,该查询将返回SELECT*等表中的所有信息,但我想省略自动递增的列

原因是,我使用SELECT*显示所有数据,因为我并不总是知道网格视图控件中有哪些列可用,然后我打开表以允许执行更新。但是,这也会打开指定为自动增量的列进行编辑,并阻止更新查询工作

到目前为止,我找到了'sys.columns.is_identity'表,它似乎在某种程度上会有所帮助,我只是不知道如何将它与动态选择结合使用。
应该注意的是,这些列并不总是已知的,因此我使用SELECT*来检索最初需要的数据。

正如您所提到的,唯一的方法是使用sys.columns和dynamic query

DECLARE @col_list VARCHAR(8000)

SET @col_list = (SELECT ',' + Quotename(c.NAME)
                 FROM   sys.columns c
                        JOIN sys.objects o
                          ON c.object_id = o.object_id
                 WHERE  o.NAME = 'table_name'
                        AND is_identity <> 1
                 ORDER  BY column_id
                 FOR xml path(''))
SET @col_list = Stuff(@col_list, 1, 1, '')

EXEC('select '+@col_list +' from yourtable')