我想做的是:
INSERT INTO Table1 (id1, id2)
(
SELECT id, 1 as id2 FROM Table2
)
除了我不能把'1 as id2'放在select语句中。
所以,作为一个例子,我有点想要这个:
INSERT INTO Table1 (id1, id2 = 1)
(
SELECT id FROM Table2
)
我将它放在存储过程中,而select语句由linq2sql生成(作为文本变量传递)。我很高兴以某种方式将'id2'放入linq2sql命令文本中,但是生成(正确)的sql只会在查询中放入实际的Table2列(只是'id1')。
我真的不想做一些字符串格式化来在sql命令文本中插入文本',1 as id2'..
我也不能将id2保留为null,因为它有一个FK约束。
答案 0 :(得分:0)
INSERT INTO Table1 (id1, id2) SELECT id, 1 as id2 FROM Table2
答案 1 :(得分:0)
确定了:
create table #tmp
( id1 int)
insert into #tmp (id1)
(
select top 10 id1 from Table1
)
insert into Table2 (id1, id2)
(
select id1, 5 from #tmp
)
drop table #tmp
答案 2 :(得分:0)
您可以使用自己的sql进行轻微编辑。
INSERT INTO Table1 (id1, id2)
(
SELECT id, 1 FROM Table2
)