我的查询就像这样
WITH p AS ( select idA from TableA )
insert into TableB(idB,idA,city,data)
select sp_get_id('TableB'),p.idA from p,'TO',now()
注意:sp_get_id('TableB')
是生成id的存储过程。我执行上面的查询,这是错误的。
答案 0 :(得分:1)
您尝试插入的术语是简单的标量。您可以从p
:
WITH p AS (SELECT idA FROM TableA)
INSERT INTO TableB (idB, idA, city, data)
SELECT sp_get_id('TableB'), idA, 'TO', NOW()
FROM p
但是,坦率地说,我认为在这里使用CTE只会使事情变得复杂(假设问题本身并不是对实际问题的简化):
INSERT INTO TableB (idB, idA, city, data)
SELECT sp_get_id('TableB'), idA, 'TO', NOW()
FROM TableA