我有以下查询:
;WITH tbldata as (
SELECT a, b FROM Some_Table
)
INSERT INTO Target_Table(column1, column2)
SELECT a,b FROM tbldata
我想使插入条件成为条件:
;WITH tbldata as (
SELECT a, b FROM Some_Table
)
IF @insert = 1
INSERT INTO Target_Table(column1, column2) SELECT a,b FROM tbldata
ELSE
SELECT a,b FROM tbldata
但我收到错误消息:Incorrect syntax near the keyword 'IF'.
我该如何解决这个问题?我一直在考虑的事情
;WITH tbldata as (
SELECT a, b FROM Some_Table
)
INSERT INTO TEMP_Table(column1, column2) SELECT a,b FROM tbldata
--effectively dumping it in a temptable before deciding whether to insert or view it
IF @insert = 1
INSERT INTO Target_Table(column1, column2) SELECT a,b FROM TEMP_Table
ELSE
SELECT a,b FROM tbldata
但不知怎的,对我来说看起来很“脏”。建议?还是我在监督s'thing?
我很想听听你的建议!
答案 0 :(得分:2)
您需要的是本地定义的视图。不幸的是,SQL Server没有它们。 CTE只能属于一个查询,不能共享。这意味着您必须执行以下操作之一: