2014-12-29 33 views
0

接受的答案this discussion在SQL Server檢測自動遞增鍵 - 驗證

SELECT 
is_identity 
FROM sys.columns 
WHERE 
    object_id = object_id('assignments') 
    AND name = 'id' 

告訴表assignments領域id是否是一個自增字段。

當我運行這個,我得到1is_identity字段的值。 請問這是不是1的意思是true - 「這張表的關鍵是自動增量」 - 這是否有例外?

SQL Server的新方式 - 尋找驗證。

// =====================

編輯:

添加以下的查詢:

SELECT 
is_identity, max_length 
FROM sys.columns 
WHERE 
    object_id = object_id('assignments') 
    AND name = 'id' 

max_length即將推出爲4. idint類型,而據我所知,int最高爲2^32。無論如何高於9999。這裏缺少什麼?

+0

是的,'is_identity'是一個'bit'字段,其中1 = yes或true,0 =否或false。 – beercodebeer

+1

也看'sys.identity_columns'。並注意'作業'與'dbo.assignments'。架構很重要。 –

+0

thx既用於驗證。 我會爲Q增加更多的東西 - 自從做了一件我沒想到的事情後,我看到了一件事。也許你可以回答,而不是這次評論s.t.我可以接受。 – user4402742

回答

1

這裏除了重複其他人在評論中所說的內容外,沒什麼可回答的:is_identity = 1表示該列是自動遞增的。

MAX_LENGTH = 4表示該列是4字節(32位)寬。對於字符型列(charvarchar,nchar, nvarchar),它表示字符串的最大長度。