2012-08-10 11 views
0

表我有WITH AS条款在我的代码如何插入导致与“WITH AS”子句

DECLARE @MyTable TABLE(Field_1 INT, Field_2 INT) 
INSERT @MyTable VALUES 
(1,2), 
(2,2) 

WITH x AS (SELECT Field_1, Field_2 FROM @MyTable) 
SELECT * FROM x 

我如何可以插入以上代码的结果是相同的表? 我特林插入,如:

DECLARE @MyTable TABLE(Field_1 INT, Field_2 INT) 
INSERT @MyTable VALUES 
(1,2), 
(2,2) 
WITH x AS (SELECT Field_1, Field_2 FROM @MyTable) 

INSERT INTO @MyTAble (SELECT * FROM x) 
SELECT * FROM @MyTable 

但它不工作。 Management Studio mark @MyTAbl e like Invalid object name @MyTable 我该怎么办?我正在使用SQL Server 2008 R2。

+0

“不起作用”是什么意思?你在使用MySQL或SQL Server吗?请不要标记两者。 – 2012-08-10 12:27:44

+0

对不起,我正在使用SQL Server 2008.我已经编辑了我的文章。 – mbigun 2012-08-10 12:35:05

+1

将来请用正确的版本标记问题。另外,为了清楚起见,SQL Server 2008和SQL Server 2008 R2不是同一回事。 – 2012-08-10 12:36:09

回答

3

也许你的意思是这个(分号和其它小的语法都重要!),

DECLARE @MyTable TABLE(Field_1 INT, Field_2 INT); 
------------------------------------------------^ 

INSERT @MyTable VALUES 
(1,2), 
(2,2); 
-----^  

WITH x AS (SELECT Field_1, Field_2 FROM @MyTable) 
------------------------------------------^ 
INSERT INTO @MyTAble SELECT * FROM x ; 
---------------------^---------------^^ 

SELECT * FROM @MyTable; 
--------------^-------^ 

...但我不认为这将在MySQL工作。

+0

抱歉让人困惑。我正在使用SQL Server R2。 – mbigun 2012-08-10 12:36:41

+0

是的,你说得对,我的代码中有很多错误。现在它工作正常!谢谢! – mbigun 2012-08-10 12:59:20