我想將一個表拆分成n行的批(在前面的例子中n = 2)。我想這樣做,以便我可以將批次導出到文件中。 我找到了解決辦法如下:Sql表拆分爲批號
create table tbl_test (
first_name nvarchar(255),
last_name nvarchar(255),
[address] nvarchar(255),
)
Insert tbl_test values ('Andrei','Corovei','str Meteor')
Insert tbl_test values ('Pop','Ionut','str Meteor')
Insert tbl_test values ('Whitehead','John','str Lunii')
Insert tbl_test values ('Grisham','Robert','str Corcoduselor')
Insert tbl_test values ('Eugen','Johnesco','str Prunelor')
select * into #tbl_temp from tbl_test
alter table #tbl_temp add tabid int identity(1,1)
declare @current int = 1
while @current < ident_current('#tbl_temp')
begin
select * from #tbl_temp
where tabid between @current and @current +1
set @current = @current + 2
end
drop table #tbl_temp
drop table tbl_test
任何人都可以提出一個解決方案,不包括數據複製到臨時表和不改變以任何方式源表。而且我也希望這可以用於任何表格,即我無法推測源代碼具有用於排序的縮進tabid或date_key。
你打算如何導出一批行? – Sorpigal
每批行分成單獨的文件... –
是的,所以你說。你沒有具體說明你計劃使用哪種機制,所以在回答時我不能考慮這個機制。 – Sorpigal