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