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);