使用带有sql语句的insert语句时 执行以下操作
Insert tablename (column1, column2)
select statement
是否有办法格式化if语句,以便在设置varible时运行insert语句。这就是我所拥有的,但它显示错误的结束语句,所以我需要帮助
if @runthis=1
begin
insert tablename (column1, column2)
end
select column1, column2
答案 0 :(得分:2)
如果在IF之后使用BEGIN,则必须在INSERT之后包含END,而不是在INSERT..SELECT的中间。
像这样:
if @runthis=1
begin
insert tablename (column1, column2) select column1, column2
end
从技术上讲,您可以通过使用动态SQL来避免使用您在评论中描述的ELSE:
DECLARE @SQL varchar(max) = '';
if @runthis=1
begin
SET @SQL = 'insert tablename (column1, column2) ';
end
SET @SQL = @SQL + 'select column1, column2';
EXECUTE (@SQL);
就个人而言,我会使用ELSE
代替。
答案 1 :(得分:2)
IF
条件中使用的语句应该有效。在其他答案中指出了使用IF
条件的正确方法。
这是另一种方式
insert tablename (column1, column2)
select column1, column2
Where @runthis=1