如何知道值是自动插入还是需要手动插入?

时间:2012-05-30 13:27:53

标签: sql-server-2008 sql-server-2012

我正在使用MS SQL Server(主要使用Management Studio),我不知道如何知道我必须插入表中的值以及自动创建的值?我怎么看? 我的意思是ID通常是自动计算的,但有时你需要手工插入它们,那么我究竟能找到/看到它?

3 个答案:

答案 0 :(得分:1)

由于您已经在SSMS(SQL Server Management Studio)中,请在查询窗口/选项卡中运行以下命令:

USE [DBNameWhereTableResides]
EXEC sp_help 'SchemaName.TableName'

OR

EXEC DBNameWhereTableResides.dbo.sp_help 'SchemaName.TableName'

您将看到“Identity”和“RowGuidCol”的条目,它们将告诉您该ID是否是自动生成的。

您还将看到Constraints的一个部分,第一列显示为“constraint_type”,它将显示任何DEFAULT约束,如果INSERT中未指定该值,它将预填充colummn。

第二部分显示所有列定义,标记为“Nullable”=“yes”的列不需要在INSERT中,但不是IDENTITY字段或具有DEFAULT,它将不会获得值如果未在INSERT中指定,则将保持为NULL。

答案 1 :(得分: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

答案 2 :(得分: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,例如PRICE