首页 MsSql sqlserver 导出插入脚本代码

sqlserver 导出插入脚本代码

工作中经常遇到需要将远程客户数据库中的数据复制到本地来测试,下载整个数据库太大了不值得,用下面的脚本可以按指定表生成Insert脚本,将脚本复制到本地来执行,这样快捷了不少

当然有其它工具可以做这件事,但如果客户不允许你在服务器乱装东西时这个脚本就会有用了。
<div class=”codetitle”><a style=”CURSOR: pointer” data=”30544″ class=”copybut” id=”copybut30544″ onclick=”doCopy(‘code30544’)”> 代码如下:<div class=”codebody” id=”code30544″>
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,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,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

本文来自网络,不代表青岛站长网立场。转载请注明出处: https://www.0532zz.com/html/shujuku/mssql/20201114/12013.html
上一篇
下一篇

作者: dawei

【声明】:青岛站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部