sqlserver 导出插入脚本代码

来源:asp之家 时间:2012-01-29 18:04:43 

当然有其它工具可以做这件事,但如果客户不允许你在服务器乱装东西时这个脚本就会有用了。

代码如下:


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

标签:导出插入
0
投稿

猜你喜欢

  • 用 SA FileUp 上传多文件

    2008-07-04 13:44:00
  • 在https页面中使用iframe出现安全警告的解决方法

    2009-03-04 12:01:00
  • sql server vs10安装之后一些列问题

    2012-01-05 19:22:41
  • 带你深入了解MySQL数据库系统参数的优化

    2009-03-06 17:58:00
  • ASP 三层架构 Convert类实现代码

    2011-03-16 11:01:00
  • ASP用户登录验证代码

    2008-05-15 12:49:00
  • 再谈 MySQL 数据库备份恢复和乱码问题

    2009-08-19 09:35:00
  • asp添加数据实现代码

    2011-02-05 10:42:00
  • MySQL数据库root权限丢失解决方案

    2008-07-13 13:59:00
  • asp如何将数字转化成条形图?

    2009-12-03 20:19:00
  • phpMyAdmin下载、安装和使用入门

    2007-06-15 11:00:00
  • Dreamweaver技巧十二招

    2009-07-05 18:53:00
  • ASP中DLL的调试环境配置全攻略

    2007-09-27 13:20:00
  • mysql myisam优化设置

    2010-03-13 16:59:00
  • 打造设计你自己的字体

    2007-12-12 13:16:00
  • 宽屏不是用来阅读的

    2009-04-05 15:59:00
  • Bad Tags — html有害的标签

    2008-10-13 19:47:00
  • 写给喜欢用DW编写CSS人的一些建议

    2008-05-19 12:09:00
  • 检查access数据库中是否存在某个名字的表的asp代码

    2011-04-02 11:20:00
  • 注册表单的细节问题

    2008-05-24 08:43:00
  • asp之家 网络编程 m.aspxhome.com