私はMS SQL Serverを使用しています(主にManagement Studioで作業しています)が、テーブルからどの値を挿入する必要があり、どの値が自動的に作成されるかを知る方法がわかりませんか?どうすればそれを見ることができますか?ID は多くの場合自動的に計算されますが、手動で挿入する必要がある場合もあります。
質問する
94 次
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 に答える