3

insert列が次のように見えるテーブルにステートメントを書き込む必要があります

  • demandtypeid( PK, FK, int, not null)
  • characvalueid( PK, FK, int, not null)
  • percentage( int null)
  • lastuser( varchar(100), null)
  • lastedited( datetime, null)

これがINSERT声明です。に値がないことに注意してください

value( ,  , 'Bob')

自動インクリメントコマンドが必要な場所だと思うので

insert into tr_demandtypecharac(demandtypeID, characvalueid, lastuser) 
values(  , , 'Bob')

簡単な短い文で助けてください

このテーブルに手動で挿入する方法を知りたいだけです

これが私のテーブル構造です:

CREATE TABLE [dbo].[tr_demandtypecharac](
[demandtypeid] [int] NOT NULL,
[characvalueid] [int] NOT NULL,
[percentage] [int] NULL,
[lastuser] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[lastedited] [datetime] NULL,
 CONSTRAINT [PK_tr_dtc_pkey] PRIMARY KEY CLUSTERED 
(
[demandtypeid] ASC,
[characvalueid] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
 ) ON [PRIMARY]

ALTER TABLE [dbo].[tr_demandtypecharac]  WITH CHECK 
ADD CONSTRAINT [FK_tr_dtc_cvid] 
FOREIGN KEY([characvalueid]) REFERENCES [dbo].[tr_characvalue] ([characvalueid])

ALTER TABLE [dbo].[tr_demandtypecharac]  WITH CHECK 
ADD CONSTRAINT [FK_tr_dtc_dtid] 
FOREIGN KEY([demandtypeid]) REFERENCES [dbo].[tr_demandtype] ([demandtypeid])
4

5 に答える 5

5

一意で自動インクリメントする int 列が必要な場合は、次のIDENTITYキーワードを使用します。

CREATE TABLE new_employees
(
 id_num int IDENTITY(1,1),
 fname varchar (20),
 minit char(1),
 lname varchar(30)
)

次に、テーブルに挿入するときに、その列には何も挿入しないでください。自動的にインクリメントされます。

于 2012-12-06T22:00:32.393 に答える
2

自動インクリメント (別名 ID) 列を使用せずに投稿したステートメントを考えると、CREATE TABLE次のように、すべての列と値を指定して挿入します。

insert into tr_demandtypecharac(
       demandtypeid, characvalueid, 
       percentage, lastuser, lastedited) 
values(2, 3, 80, 'Bob', '01/01/2012')

ただし、次のように変更して自動インクリメントを行う場合CREATE TABLE:

CREATE TABLE [dbo].[tr_demandtypecharac](
[demandtypeid] [int] NOT NULL IDENTITY(1,1),
[characvalueid] [int] NOT NULL IDENTITY(1,1),
[percentage] [int] NULL,
[lastuser] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[lastedited] [datetime] NULL,
 CONSTRAINT [PK_tr_dtc_pkey] PRIMARY KEY CLUSTERED 
(
[demandtypeid] ASC,
[characvalueid] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
 )

次に、次のようにすべての非 ID (自動インクリメントではない) 列を挿入します。

insert into tr_demandtypecharac(
      percentage, lastuser, 
      lastedited) 
values(80, 'Bob', '01/01/2012')

ただし、ID (自動インクリメント) 列として複数の列を持つことは一般的ではなく、通常、この列は唯一の PRIMARY KEY 列です。

于 2012-12-06T22:51:58.277 に答える
0

列が自動インクリメント列 (主キー列とは異なります) の場合、insert ステートメントでその列を省略すると、値が入力されます。

INSERT INTO tr_demandtypecharac (lastuser) VALUES ('Bob')
于 2012-12-06T22:00:21.587 に答える
-6

int を主キーとして使用しないでください...これに関する記事は次のとおりです

しかし、そうする場合...フィールドをIDとして設定すると、Sql Serverがそれを行います...チェックしてください:http://msdn.microsoft.com/en-us/library/ms186775.aspx

于 2012-12-06T21:59:10.493 に答える