我有一个非常复杂的CTE,我想将结果插入物理表.
以下是否有效?
INSERT INTO dbo.prf_BatchItemAdditionalAPartyNos
(
BatchID,
AccountNo,
APartyNo,
SourceRowID
)
WITH tab (
-- some query
)
SELECT * FROM tab
Run Code Online (Sandbox Code Playgroud)
我正在考虑使用一个函数来创建这个CTE,这将允许我重用.有什么想法吗?
是否可以在sql server 2008中截断或清除表变量?
Declare @tableVariable table
(
id int,
value varchar(20)
)
while @start<=@stop
begin
insert into @tableVariable(id,value)
select id
, value
from xTable
where id=@start
--Use @tableVariable
--@tableVariable should be flushed out of
-- old values before inserting new values
set @start = @start + 1
end
Run Code Online (Sandbox Code Playgroud) 我有一个CTE查询这个
;With CTE_Table as (SELECT ...)
Select * from CTE_Table
Run Code Online (Sandbox Code Playgroud)
现在我尝试将此结果保存到table variable或temporary table.如果我试试
Declare @Table table
(...)
INSERT INTO @Table (...)
HER I PUT THE CODE ABOVE
Run Code Online (Sandbox Code Playgroud)
我得到一个incorrect syntax error周围的WITH声明.我猜这个Insert Into命令期望Select statement代替a 而不是;WITH同样的代价Create Table.我一直在寻找解决方案,但我找到的所有解决方案都没有涉及Select Statement到;With.如何将上面显示的输出变为temporary table或table variable?
我使用SQL Server 2014.
sql t-sql common-table-expression table-variable sql-server-2014