需求:要将一张sqlserver表拆成两张父子表,
记录一下代码
sp_help ra_device_detail
alter table dbo.ra_device add row_id nchar(200);
alter table dbo.ra_device add update_time datetime;
alter table dbo.ra_device add is_del tinyint default 0;
alter table dbo.ra_device add s_id nchar(200);
alter table dbo.ra_device_detail add row_id nchar(200);
alter table dbo.ra_device_detail add update_time datetime;
alter table dbo.ra_device_detail add is_del tinyint default 0;
alter table dbo.ra_device_detail add s_id nchar(200);
select * from dbo.ra_demo
select * from dbo.ra_device_detail
select * from dbo.ra_device
truncate table dbo.ra_device
DECLARE @ID nchar(200)
, @BU nchar(200)
, @Productname NVARCHAR(1000)
, @Producttype NVARCHAR(1000)
, @ref_num nchar(200)
, @producttype1 nchar(200)
, @producttype2 nchar(200)
, @reviewer NVARCHAR(1000)
, @review_dept NVARCHAR(1000)
, @re_date date
, @v_id nchar(200)
, @v_time datetime
, @re_file NVARCHAR(1000)
, @re_content NVARCHAR(1000)
, @re_type NVARCHAR(1000)
, @comment NVARCHAR(1000);
DECLARE mycursor CURSOR
FOR
SELECT ID,BU,Productname,Producttype,ref_num,producttype1,producttype2,reviewer,review_dept,re_date,re_file,re_content,re_type,comment FROM ra_demo
set @v_id = 0;
set @v_time = GETDATE();
OPEN mycursor
FETCH NEXT FROM mycursor INTO @ID, @BU,@Productname,@Producttype,@ref_num,@producttype1,@producttype2,@reviewer,@review_dept,@re_date,@re_file,@re_content,@re_type,@comment;
WHILE @@fetch_status = 0
BEGIN
set @v_id = @v_id+1;
INSERT INTO ra_device(ID,BU,Productname,Producttype,ref_num,producttype1,producttype2,reviewer,review_dept,re_date,row_id,p_id,update_time)VALUES(@ID, @BU,@Productname,@Producttype,@ref_num,@producttype1,@producttype2,@reviewer,@review_dept,@re_date,@v_id,@v_id,@v_time)
INSERT INTO ra_device_detail(ID,ref_num,re_file,re_content,re_type,comment,row_id,s_id,update_time)VALUES(@ID,@ref_num,@re_file,cast(@re_content as ntext),@re_type,cast(@comment as ntext),@v_id,@v_id,@v_time);
FETCH NEXT FROM mycursor INTO @ID, @BU,@Productname,@Producttype,@ref_num,@producttype1,@producttype2,@reviewer,@review_dept,@re_date,@re_file,@re_content,@re_type,@comment;
END
print(@v_id)
CLOSE mycursor;
DEALLOCATE mycursor;