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
投稿

猜你喜欢

  • 使用Python在Windows下获取USB PID&VID的方法

    2021-02-15 19:31:20
  • Django项目实战之用户头像上传与访问的示例

    2021-01-27 04:28:16
  • Python入门之布尔值详解

    2023-01-17 06:29:58
  • 基于Python实现2种反转链表方法代码实例

    2021-11-27 21:19:02
  • Python实现计算AUC的三种方式总结

    2021-07-10 23:35:32
  • 在Golang中使用Redis的方法示例

    2024-04-28 09:16:01
  • Javascript removeChild()删除节点及删除子节点的方法

    2023-07-02 05:30:22
  • mysql简单实现查询结果添加序列号的方法

    2024-01-26 11:33:56
  • mssql无数据库日志文件恢复数据库的方法第1/2页

    2024-01-28 16:33:52
  • python获取外网IP并发邮件的实现方法

    2023-01-07 13:55:33
  • MySQL InnoDB 二级索引的排序示例详解

    2024-01-15 17:11:53
  • vue使用swiper实现中间大两边小的轮播图效果

    2024-06-05 09:20:25
  • 10分钟教你用Python实现微信自动回复功能

    2021-03-14 04:04:47
  • MySQL如何为表和字段取别名详解

    2024-01-14 11:35:02
  • python学习VSCode使用技巧带你进入高效开发模式

    2021-01-02 04:38:58
  • Python中文分词工具之结巴分词用法实例总结【经典案例】

    2023-05-05 01:46:30
  • 也谈网页圆角的背景图法

    2009-03-19 14:09:00
  • Pytorch Tensor的索引与切片例子

    2022-12-08 16:28:10
  • 详细聊一聊为什么Python没有main函数

    2023-05-13 07:16:29
  • vue.js如何在网页中实现一个金属抛光质感的按钮

    2024-04-28 09:21:26
  • asp之家 网络编程 m.aspxhome.com