Sql-Server

是否為 SQL 表列分配了列號

  • December 4, 2020

在表中,我們可以看到自動分配的編號(行號)是否可用於列(列號),我們如何獲得該編號?我需要一個 SQL 查詢來查找列號而不是列數。

您在 SSMS 中獲得的行號(我假設您指的是這個數字)不是由 SQL 生成的,而是由 SSMS 生成的(因此它實際上並不存在於您的數據庫中)。

SQL 確實有一個與每一列(它們的 ID)相關聯的“數字”,您可以通過如下查詢獲得那些:

 select c.column_id from sys.columns c 
 join sys.objects o on o.object_id =c.object_id
 where o.name = 'YourTableName'

我不確定它是否會完全按照您的預期進行,因此如果您可以指定為什麼需要這些列編號,我們將能夠更好地為您提供更清晰的答案。

您不能通過其編號來引用列。(你也不能用某個數字來引用一行,正如已經說過的,你在 SSMS 網格中看到的行號是由 SSMS 生成的。)

因此,當您編寫 DML 時,列沒有數字。在 UPDATE 中,您不能將“第二列”稱為2. 這個概念根本不存在。

然而,SQL Server內部確實有表和列的 ID,而且它們恰好是整數類號。但這並不意味著這些在 DML 級別可用。

因此,如果您在更高層次上添加更多關於您需要實現的目標的詳細資訊,您可能會獲得想法和設計建議。我的意思是比你對多米尼克的回答的評論更多的細節。考慮到這將是一種新型問題,這應該在新文章中完成。

引用自:https://dba.stackexchange.com/questions/280821