SqlServer查询数据放入临时表中修改后再插入表中(添加了事务)

select * INTO #Daily2 from [dbo].[Table] --where 条件
update #Daily set --修改
DECLARE
@Category as varchar(100),
@ColumnName as varchar(50),
@DisplayName as varchar(50),
@Visible as bit,
@Sort as int,
@Columntype as varchar(50),
@Width as int,
@Align as varchar(50),
@CollapseVisible  as bit,
@EnableSorting as bit, 
@Fixed as bit,
@IsShare as bit,
@IsShowChart as bit,
@IsExport as bit,
@WebPosition as varchar(20),
@errorCount as int=0;
while exists(SELECT ColumnName FROM #Daily)
    begin
SET ROWCOUNT 1
SELECT @Category=Category,@ColumnName=ColumnName,@DisplayName=DisplayName,@Visible=Visible,
      @Sort=Sort,@Columntype=ColumnType,@Width=Width,@Align=Align,@CollapseVisible = CollapseVisible,@EnableSorting = EnableSorting,@Fixed=Fixed,@IsShare = IsShare,@IsShowChart=IsShowChart,@IsExport=IsExport ,@WebPosition=WebPosition FROM #Daily;
SET ROWCOUNT 0
begin transaction; --声明事物
INSERT INTO [dbo].[Table] 
            ([Category]
           ,[ColumnName]
           ,[DisplayName]
           ,[Visible]
           ,[Sort]
           ,[ColumnType]
           ,[Width]
           ,[Align]
           ,[CollapseVisible]
           ,[EnableSorting]
           ,[Fixed]
           ,[IsShare]
           ,[IsShowChart]
           ,[IsExport]
           ,[WebPosition])
     VALUES
           (@Category
           ,@ColumnName
           ,@DisplayName
           ,@Visible
           ,@Sort
           ,@Columntype
           ,@Width
           ,@Align
           ,@CollapseVisible
           ,@EnableSorting
           ,@Fixed
           ,@IsShare
           ,@IsShowChart
           ,@IsExport
           ,@WebPosition);
if(@@ERROR<>0)
begin
rollback transaction;
set @errorCount=@errorCount+1;
end
else 
begin
commit transaction;
end 
DELETE FROM #Daily WHERE ColumnName=@ColumnName;
    end 
print(@errorCount);

 

posted @ 2022-04-19 14:29  点终将连成线  阅读(173)  评论(0编辑  收藏  举报