我遇到了SQL插入到/ select的问题。INSERT INTO/SELECT ONLY INSERTS ONE ROW
INSERT INTO TBLPMHISTORY(RELEQUIPMENTID,DTETHISPMDUE,STRCAMPUS,STRROOM)
(SELECT INTEQUIPMENTID,DTEPMDATENEXTDUE,STRCAMPUS,STRROOM
FROM TBLEQUIPMENT
WHERE DTEPMDATENEXTDUE BETWEEN GETDATE() AND DATEADD("DAY",21,GETDATE()))
似乎只插入一行到新表,但是当我运行它自己的语句的SELECT部分,它回来了84行。
我不确定是否有限制大容量插入的东西,但任何帮助将不胜感激。
的代码来创建PMHISTORY表如下:
CREATE TABLE TBLPMHISTORY(
INTPMHISTORYID INT NOT NULL PRIMARY KEY IDENTITY,
RELEQUIPMENTID INT NOT NULL FOREIGN KEY REFERENCES TBLEQUIPMENT(INTEQUIPMENTID),
STRDESCRIPTION VARCHAR(64) DEFAULT 'Preventative Maintenance',
DTETHISPMDUE DATETIME,
YSNPMDONE BIT DEFAULT '0',
YSNPMCONVERTEDTOJOB BIT DEFAULT '0',
INTRELATEDJOBNUMBER INT DEFAULT '0',
STRCAMPUS VARCHAR(30),
STRROOM VARCHAR(30))
CREATE UNIQUE NONCLUSTERED INDEX [IX_PMHistory_DTETHISPMDUE] ON TBLPMHISTORY(DTETHISPMDUE) WITH (IGNORE_DUP_KEY = ON) ON [PRIMARY]
你没有收到任何错误吗?你有任何一种独特的限制或密钥,可以防止'TBLPMHISTORY'上可能的重复值? – 2013-04-09 04:05:36
有触发器吗? – 2013-04-09 04:05:40
这里没有任何触发器。我已经把我用来创建PMHistory表的代码放在上面。它有一个独特的非聚集索引来防止重复,啊......这是问题,因为它们都有相同的PMDUEDATE,这是约束是....我可以使用非聚集索引的两个字段的约束? – 2013-04-09 06:13:26