首頁 >資料庫 >mysql教程 >如何檢索 SQL Server 中的資料列資訊、資料類型和主鍵?

如何檢索 SQL Server 中的資料列資訊、資料類型和主鍵?

Barbara Streisand
Barbara Streisand原創
2024-12-31 17:40:14650瀏覽

How to Retrieve Column Information, Data Types, and Primary Keys in SQL Server?

取得SQL Server 中的欄位資訊、資料型別、空白限制和主鍵

在SQL Server 中,您可以擷取以下內容的詳細資訊特定表中的列,包括其資料類型、長度、可為空性以及是否為主鍵。以下是實現此目的的方法:

  1. 選擇必要的欄位:
    選擇以下列開始查詢:

    • 列名:使用c.name 取得列名。
    • 資料型態:使用t.name 擷取資料列的資料型態。
    • 長度:對於字串和其他具有定義長度的資料類型,請使用 c.max_length。
    • 精確度和小數位數:對於數字資料類型,包括c. precision和c.scale。
    • 可空狀態:使用c.is_nullable判斷列是否允許為空
  2. 加入必要的表:
    根據sys.types表格(別名為t)加入sys.columns 資料表(別名為c)在其user_type_id上檢索特定於列的資訊。
  3. 檢查主鍵約束:
    (選用)您可以透過連接 sys.index_columns (ic) 和 sys.indexes (i) 表來檢查主鍵約束。如果某一列的索引 is_primary_key 設定為 1,則該欄位是主鍵。使用 ISNULL(i.is_primary_key, 0) 處理列不是主鍵的情況。
  4. 以表格名稱篩選:
    使用 WHERE c.object_id = OBJECT_ID(' YourTableName') 過濾特定表的結果,將 'YourTableName' 替換為實際表名稱。
  5. 替換表名稱:
    對於架構,將 'YourTableName' 替換為 'YourSchemaName.YourTableName'。

範例查詢:

SELECT 
    c.name AS 'Column Name',
    t.Name AS 'Data type',
    c.max_length AS 'Max Length',
    c.precision,
    c.scale,
    c.is_nullable AS 'Null?',
    ISNULL(i.is_primary_key, 0) AS 'Primary Key'
FROM    
    sys.columns c
INNER JOIN 
    sys.types t ON c.user_type_id = t.user_type_id
LEFT OUTER JOIN 
    sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id
LEFT OUTER JOIN 
    sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id
WHERE
    c.object_id = OBJECT_ID('YourTableName')

輸出:

查詢會傳回一個包含下列資訊的表格:

Column Name Data type Max Length Null? Primary Key

以上是如何檢索 SQL Server 中的資料列資訊、資料類型和主鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn