2012-05-30 35 views
2

以及我正在使用MS SQL Server(主要與管理工作室合作),我無法知道如何知道表格中的值是否必須插入以及自動創建了哪些值?我如何看待? 我的意思是ID通常是自動計算的,但有時您需要手動插入它們,所以我怎麼能找到/看到這些?如何知道該值是自動插入還是需要手動插入?

+1

檢查「身份規範」屬性,它會告訴你'身份增量'是真是假。 –

回答

1

既然你已經在SSMS(SQL Server Management Studio中),請在查詢窗口/選項卡中的以下內容:

USE [DBNameWhereTableResides] 
EXEC sp_help 'SchemaName.TableName' 

OR

EXEC DBNameWhereTableResides.dbo.sp_help 'SchemaName.TableName' 

您將看到 「身份」 和 「ROWGUIDCOL」,將電話條目l如果ID是自動生成的。

您還將看到Constraints部分,第一列顯示爲「constraint_type」,如果該值未在INSERT中指定,將顯示預填充列的任何DEFAULT約束。

第二部分顯示了所有的列定義,標記爲「Nullable」=「yes」的列不需要在INSERT中,但沒有一個IDENTITY字段或有一個DEFAULT它不會得到一個值,如果未在INSERT中指定,則將保持爲NULL。

0

您可以使用該查詢查找所有表和ID列

SELECT s.name + '.' + t.name AS TableName, c.name AS ColumnName, 
IDENT_SEED(s.name + '.' + t.name) AS Seed, 
IDENT_INCR(s.name + '.' + t.name) AS Increment 
FROM sys.tables t 
INNER JOIN sys.schemas s ON t.schema_id = s.schema_id 
INNER JOIN sys.columns c ON c.object_id = t.object_id 
    AND c.is_identity = 1 
0
CREATE TABLE Product 
( 
    id int IDENTITY, 'this will be automatically inserted 
    product_name VARCHAR(30), 
    description varchar(200), 
    price money NOT NULL 
) 

INSERT Product (product_name) VALUES ('Strawberry', 1200); 

注:我沒有在我的插入中指定「id」。 您不必指定「description」,默認值爲null 必須指定任何列標記NOT NULL,例如價格