繁体   English   中英

sql server->插入到作为主键的单个值中,并将Identity()插入另一个表的列中

[英]sql server--> Insert into a single value which is a primary key as well as Identity() into a column of another table

我想从具有主键和Is Identity属性的列中插入记录到另一个表的另一列中。 例如,

我有一个名为“ STU”的表,其中包含以下列:

  • SNO(主键和身份[即自动递增])
  • NAME(非null)
  • CLASS(非null)
  • SECTION(不为null)

我有一个名为“ MARK”的表,其中包含以下列:

  • MSNO(外键参考STU(SNO))
  • M1(非null)
  • M2(非null)
  • M3(非空)

     CREATE TABLE STU (SNO INT CONSTRAINT PK_SNO PRIMARY KEY (SNO), NAME VARCHAR(25), CLASS VARCHAR(20), SECTION CHAR ); CREATE TABLE MARK(MSNO INT CONSTRAINT FK_MSNO FOREIGN KEY (MSNO) REFERENCES STU(SNO), M1 INT, M2 INT, M3 INT); 

就像标题所说的那样,我试图插入1个表中,从其他表中选择值。

INSERT INTO MARK (MSNO, M1, M2, M3) SELECT SNO FROM STU WHERE SNO = '%', '100','100','100';

INSERT INTO MARK (MSNO, M1, M2, M3) SELECT SNO FROM STU WHERE SNO = '%' values ('100','100','100');

这些插入查询都抛出错误

INSERT INTO MARK (MSNO, M1, M2, M3)
SELECT SNO FROM STU WHERE SNO = '%' values ('100','100','100');

我认为您的意图是:

INSERT INTO MARK (MSNO, M1, M2, M3)
SELECT SNO, '100', '100', '100' FROM STU WHERE SNO = '%'

SELECT语句描述要插入的数据。 它必须是有效的SELECT语句。 附加VALUES不能达到目的。

如果需要在插入之前可视化要插入的内容,只需先运行SELECT查询即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM