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'

ID が自動生成されているかどうかを示す "Identity" と "RowGuidCol" のエントリが表示されます。

制約のセクションも表示されます。最初の列は "constraint_type" であり、INSERT で値が指定されていない場合に列を事前に入力する DEFAULT 制約を示します。

2 番目のセクションはすべての列定義を示し、「Nullable」=「yes」とマークされているものは INSERT にある必要はありませんが、IDENTITY フィールドであるか、DEFAULT がないと、値を取得せずそのままになります。 INSERT で指定されていない場合は NULL。

于 2012-05-30T13:43:25.830 に答える
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

于 2012-05-30T13:44:50.150 に答える
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 に答える