我正在一个项目中跟踪杂货费用。我的下表已经插入了预定义的值:
我还有等待输入的表。
它们是:
我已经按照自己的需要设置了约束,但是在编写INSERT语句时让我有些茫然,该语句将允许我插入引用其他表中值的新记录。任何想法将不胜感激。
谢谢!
答案 0 :(得分:1)
// jQuery
$('#LinkAddress').val("linkaddresshere");
// vanilla JS
document.getElementById('LinkAddress').value = "linkaddresshere";
将为您提供最后一个身份的单个值。虽然在这种情况下可能会很好地工作,但是当您要插入集合时,通常不一定是最好的方法。
我考虑使用SCOPE_IDENTITY
子句将插入的项目ID输出到临时表中,然后可以将它们重新连接到后续插入中。
`INSERT INTO ... OUTPUT INSERTED.ID IN TEMPIDs
INSERT INTO other_table内部联接tempID ...`
将其包装在SP中。
https://docs.microsoft.com/en-us/sql/t-sql/queries/output-clause-transact-sql?view=sql-server-2017
答案 1 :(得分:0)
以最后三个表为例,插入接收表并使用ScopeIdentity()函数获取ID(您必须使用身份列作为主键)。对每个食品重复以下操作-插入食品表,使用ScopeIdentity获取主键,然后在FoodReceipt中插入一行,将收据的保存值和当前食品行的保存值保存。