sqlserver 导出插入脚本代码 |
本文标签:导出插入 当然有其它工具可以做这件事,但如果客户不允许你在服务器乱装东西时这个脚本就会有用了 。 复制代码 代码如下: DECLARE @tbImportTables table(tablename varchar(128), deleted tinyint) -- append tables which you want to import Insert Into @tbImportTables(tablename, deleted) values(tentitytype, 1) Insert Into @tbImportTables(tablename, deleted) values(tattribute, 1) -- append all tables --Insert Into @tbImportTables(tablename, deleted) select table_name, 1 from INFORMATION_SCHEMA.tables where table_type = BASE TABLE DECLARE @tbImportScripts table(script varchar(max)) Declare @tablename varchar(128), @deleted tinyint, @columnname varchar(128), @fieldscript varchar(max), @valuescript varchar(max), @insertscript varchar(max) Declare curImportTables Cursor For Select tablename, deleted From @tbImportTables Open curImportTables Fetch Next From curImportTables Into @tablename, @deleted WHILE @@Fetch_STATUS = 0 Begin If (@deleted = 1) begin Insert into @tbImportScripts(script) values (Truncate table + @tablename) end Insert into @tbImportScripts(script) values (SET IDENTITY_INSERT + @tablename + ON) set @fieldscript = select @fieldscript = @fieldscript + column_name + , from INFORMATION_SCHEMA.columns where table_name = @tablename and data_type not in(timestamp, image) set @fieldscript = substring(@fieldscript, 0, len(@fieldscript)) set @valuescript = select @valuescript = @valuescript + case when + column_name + is null then null else + convert(varchar(max), + column_name + ) + end +,+ from INFORMATION_SCHEMA.columns where table_name = @tablename and data_type not in(timestamp, image) set @valuescript = substring(@valuescript, 0, len(@valuescript) - 4) set @insertscript = select insert into + @tablename + ( + @fieldscript + ) values( + + + @valuescript + + ) from + @tablename Insert into @tbImportScripts(script) exec ( @insertscript) Insert into @tbImportScripts(script) values (SET IDENTITY_INSERT + @tablename + OFF) Insert into @tbImportScripts(script) values (GO ) Fetch Next From curImportTables Into @tablename, @deleted End Close curImportTables Deallocate curImportTables Select * from @tbImportScripts |