SET NOCOUNT ON --Table name and query conditions DECLARE @TABLENAME VARCHAR(64),@C VARCHAR(512) SET @TABLENAME='BA_ROLEAUTHORITY' SET @C='WHERE 1=1' --Define variables for field names, types, and lengths, and get cursors for table structures declare @name varchar(64),@type varchar(16),@len varchar(6) declare tbCur cursor for select COLUMN_NAME ,DATA_TYPE,CHARACTER_OCTET_LENGTH from INFORMATION_SCHEMA.COLUMNS where table_name=@TABLENAME --Define the variable for the insert statement declare @rows nvarchar(512),@EXE_SQL nvarchar(2048),@sqlrow nvarchar(2048) set @rows='' set @EXE_SQL='' -- get table structure, open tbCur fetch next from tbCur into @name,@type,@len while @@FETCH_STATUS=0 begin set @rows=@rows+@name+',' IF @type = 'varchar' or @type='char' or @type ='datetime' or @type='nvarchar' or @type ='nchar' BEGIN set @EXE_SQL=@EXE_SQL+ 'ISNULL(''N''''''+'+@name+'+'''''''',''NULL'')'+'+'',''+' END ELSE BEGIN set @EXE_SQL=@EXE_SQL+ 'ISNULL(CONVERT(VARCHAR(12),'+@name+'),''NULL'')'+'+'',''+' END fetch next from tbCur into @name,@type,@len end set @rows=SUBSTRING(@rows,1,len(@rows)-1) set @EXE_SQL=SUBSTRING(@EXE_SQL,1,len(@EXE_SQL)-5) close tbCur deallocate tbCur --EXEC('select '+@EXE_SQL+' from '+@TABLENAME +' '+@C) --create temporary table exec('select '+@EXE_SQL+' AS R into ##temp from '+@TABLENAME +' '+@C) --Define the cursor to fetch data declare tb_cur cursor for select * from ##temp open tb_cur fetch next from tb_cur into @sqlrow while(@@FETCH_STATUS=0) begin print 'INSERT INTO '+@TABLENAME+'('+@rows+') VALUES('+@sqlrow+')' fetch next from tb_cur into @sqlrow end close tb_cur deallocate tb_cur exec('drop table ##temp')
SQLServer export data insert statement
Guess you like
Origin http://10.200.1.11:23101/article/api/json?id=326856390&siteId=291194637
Recommended
Ranking