如何知道MS-SQL中表中的列位置 例如:如果一个表由3列组成,即column1,column2和column3 我应该编写一个查询,以便我可以将column3的位置设为 3
答案 0 :(得分:1)
您将从information_schema获得所有这些内容。
select ordinal_position from information_schema.columns
where schema_name = 'databasename'
and table_name = 'tablename'
and column_name = 'column name'
答案 1 :(得分:1)
有两种方法可以做到这一点:
select colid
from sys.syscolumns
where id = object_id('schemaname.tablename') and name = 'column3'
和
select ordinal_position
from information_schema.columns
where
schema_name = 'schemaname' and
table_name = 'tablename' and
column_name = 'column3'
这是一篇关于为什么必须避免使用information_schema视图的文章 - The case against INFORMATION_SCHEMA views,我不必经常编写这种类型的查询,所以我并不关心它,但sys.syscolumns倾向于有点快,因为它没有很多你可能不需要的冗余连接。
OTOH,information_schema视图是ISO标准 - 这里有关于此的讨论 - SQL Server: should I use information_schema tables over sys tables?
答案 2 :(得分:0)
尝试:
SELECT ORDINAL_POSITION
FROM information_schema.columns
WHERE table_name = 'YourTableName' AND COLUMN_NAME = 'YourColumnName'
答案 3 :(得分:0)
尝试查询并检查结果。
选择column_name,ordinal_position 来自information_schema.columns 其中table_catalog ='yourdatabasename' 和table_schema ='yourschemaname' 和table_name ='yourtablename'