2

好吧,我正在使用 MS SQL Server(主要与 Management Studio 一起使用),但我不知道如何知道我必须插入表中的哪些值以及自动创建哪些值?我怎么看?我的意思是 ID 通常是自动计算的,但有时您需要手动插入它们,那么我怎样才能找到/看到呢?

4

3 回答 3

1

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

USE [DBNameWhereTableResides]
EXEC sp_help 'SchemaName.TableName'

或者

EXEC DBNameWhereTableResides.dbo.sp_help 'SchemaName.TableName'

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

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

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

于 2012-05-30T13:43:25.830 回答
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
于 2012-05-30T13:38:39.773 回答
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”。您不必指定“描述”,默认值为 null 必须指定任何列标记 NOT NULL,例如 PRICE

于 2012-05-30T13:44:50.150 回答