gpt4 book ai didi

tsql - sql server 连接表值一次上传保存四次

转载 作者:行者123 更新时间:2023-12-01 05:40:28 25 4
gpt4 key购买 nike

我将一个 csv 文件上传到 sql server 2008 中的一个虚拟表(csv_upload)。我必须使用触发器将数据分发到下面的表;

Questions          Answers       Test              QAT
--------- --------- ------ -----
Questid Ansid Testid Questid
Question Answers Testname Ansid
Testid
id
StdUsername

触发代码;
 INSERT INTO tbl_answers ( Answer)
select DISTINCT Answer
from tbl_csv_upload


INSERT INTO tbl_questions ( Question )
select DISTINCT Question
from tbl_csv_upload

INSERT INTO tbl_taqa (StdUsername,questid, ansid , testid )
SELECT StdUsername ,q.quest_id,a.ans_id,t.test_id
FROM csv_upload c, questions q, answers a, test t
WHERE c.Question = q.Question
AND c.Answer = a.Answer
AND t.test_id = IDENT_CURRENT('test')

这个触发器在第一次从 asp.net 应用程序上传时工作得很好,但在第二次上传时,它在 QAT 表中保存了 4 次数据,而不是在其他表中保存数据。
请我需要紧急帮助。

最佳答案

可能您的数据中有重复的问题和答案。 DISTINCT删除上传表中当前存在的重复项,但是下次您调用 proc 时,它们会再次插入,因为它没有考虑表中已经存在的值。

使用它来插入答案:

INSERT
INTO answers (answer)
SELECT answer
FROM tbl_csv_upload
EXCEPT
SELECT answer
FROM answers

以及对 questions 的类似查询.

关于tsql - sql server 连接表值一次上传保存四次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5910087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com