我正在使用SQL Server 2008。
以下是存储过程的一部分。 @ Param1 - > @Param6是存储过程参数。
这就是我想要做的事情:
INSERT INTO myTable
VALUES (otherTableValue, @Param2, @Param3, @Param4, @Param5)
SELECT ID as otherTableValue
FROM otherTable
WHERE otherTable.Param6 = @Param6
我收到“无效的列名”作为错误。我做错了什么?
答案 0 :(得分:2)
你的语法错了。要在select
中使用insert
,请使用select
代替values
:
INSERT INTO myTable
SELECT ID, @Param2, @Param3, @Param4, @Param5
FROM otherTable
WHERE otherTable.Param6 = @Param6
答案 1 :(得分:1)
添加列名通常是一种很好的做法......如果有人更改了架构,那该怎么办呢。
INSERT INTO myTable (ColName1, ColName2, ColName3, ColName4, ColName5)
SELECT ID,@Param2, @Param3, @Param4, @Param5
FROM otherTable
WHERE otherTable.Param6 = @Param6
答案 2 :(得分:0)
语法错误。 @ Param2,@ Param3等不是列名。
INSERT INTO myTable
VALUES (otherTableValue, field2, field3, field4, field5)
SELECT ID as otherTableValue, @Param2, @Param3, @Param4, @Param5
FROM otherTable
WHERE otherTable.Param6 = @Param6