我有以下查询:如果使用“与”上插入语句
;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
但不知何故,看起来'脏'给我。建议?还是我监督着什么?
我很想听听你的建议!
你的错误是因为这样的:一个CTE后面必须跟一个SELECT,INSERT,UPDATE或DELETE语句引用一些或所有的CTE列。 http://msdn.microsoft.com/en-us/library/ms175972.aspx – Ric
我结束了使用内存可温度。肮脏,但伎俩。感谢您为我澄清这一点! – Henrov