邮件订阅
5ucms模版,SQL Server数据库下教你如何做导库SQL
作者: 来源: 日期:2018/5/24 11:06:18 浏览量:0(滞后) 人气:LOADING...(实时) 【

5ucms模版,SQL Server数据库下教你如何做导库SQL

导库SQL -- 适用于sql server

 

在企业信息化建设过程中,数据库实体做为存放企业运营数据的仓库,具有至高重要的地位。

为防止数据丢失,事前预防是很关键的,诸如数据库定期备份、磁盘阵列、集群解决方案等等。

但是一旦发生数据丢失或是损坏的现象,而且不能通过正常的修复手段来处理,则可以通过导库来尝试一下。

 

国产的软件包括k/3,u8 等等,都有类似管理数据库的工具,管理工具中提供新建数据库的功能,新建的同类(指管理工具中提供的类别)数据库实体(国产软件通常称之为“账套”)有相同的表结构。因此,如果账套损坏,且无法修复的,可以新建一同类型的账套实体,通过下面的导库语句把被损坏的账套的数据导入新建账套中。

 

下面的语句提供了一个比sql server DTS导入导出更加灵活的工具。不过需要大家仔细理解才能运用的得心应手哈!!

 

----该存储过程建立在新帐套中,并在新账套中执行

 

if Exists(select * from sysobjects where name=N''sp_ExportDatabase'' And Xtype=''P'')            Drop PROCEDURE [sp_ExportDatabase]            Go            Create PROCEDURE [sp_ExportDatabase] (            @SourceDB varchar(100)            ) ----创建存储过程 sp_ExportDatabase            AS            Begin            Set NoCount On            Declare @Utb sysname     ------用户表名            Declare @ColName sysname   ------列名            Declare @tid int       ------用户表的ID            Declare @sql nvarchar(3000)------存放拼出的sql            Declare @len int            --定义游标取回用户建立的表            sELECT @SourceDB=@SourceDB+''.''            Declare Ctb Cursor For            Select name,id From sysobjects            Where xtype =''U'' ----如果在导库过程中因某表存在错误而导致导库过程停止 ,则可以尝试修复此表。            ----如果此表不是很重要、或是此表无法修复,则可以在此加入条件            And name in (tablename1,tablename2,……)            ------tablename1,tablename2 表示不能修复的表的名字            Order by name            Open Ctb            Fetch Ctb Into @Utb,@tid            While (@@FETCH_STATUS=0)            Begin   ----禁用当前数据库中所有表的约束、触发器            Select @Utb=''Dbo.''+@Utb            Select @SQL=''Alter Table ''+@Utb+'' Disable Trigger All; ''+ '' ALTER TABLE ''+ @Utb +'' NOCHECK CONSTRAINT All; ''            exec ( @SQL)            Fetch Ctb Into @Utb,@tid            End            close ctb            Open Ctb            Fetch Ctb Into @Utb,@tid            While (@@FETCH_STATUS=0)            Begin            Select @Utb=''Dbo.''+@Utb            exec ('' Delete '' + @Utb)            Set @sql=''            Declare Clu Cursor For Select name From syscolumns Where id=@tid And iscomputed=0 and xtype<>189            Open Clu            Fetch Clu Into @ColName            While (@@FETCH_STATUS=0)            Begin     ----把列名以逗号隔开,拼成字符串            Set @sql=@sql+ @ColName + '',''            Fetch Clu Into @ColName            End            Close Clu            DeAllocate Clu            ----构造字符串            Set @len=Len(@sql)            If @len>0            Begin   ----把源数据库中的表导入到当前数据库中            Select @sql=left(@sql,@len-1)            Set @sql=''Insert Into ''+ @Utb + '' (''+@sql+'') ''+'' Select ''+@sql+'' From '' + @SourceDB+ @Utb            print ''Importing Table : '' +@utb+''...''            If Exists (Select name From syscolumns Where id=@tid and status=0x80)            begin            Select @SQl=''Set IDENTITY_INSERT ''+ @Utb + '' ON'' + '' Delete '' + @Utb+'' ''+@sql            print @sql            end            Else            Select @SQl=@sql            Exec ( @sql)            If Exists (Select name From syscolumns Where id=@tid and status=0x80)            Exec( ''Set IDENTITY_INSERT ''+ @Utb + '' Off'')            print ''Importing Table : '' +@utb+'' complete''            End            Fetch Next From Ctb Into @Utb,@tid            End            Close Ctb            Open Ctb            Fetch Ctb Into @Utb,@tid            While (@@FETCH_STATUS=0)            Begin   ----启用当前数据库中所有表的约束、触发器            Select @Utb=''Dbo.''+@Utb            select @sql=''Alter Table ''+@Utb+'' Enable Trigger All ''+ '' ALTER TABLE ''+ @Utb +'' CHECK CONSTRAINT All ''            Exec sp_executesql @sql            Fetch Ctb Into @Utb,@tid            End            close ctb            DeAllocate Ctb            print ''Import database complete!''            return 0            End            Go            Exec sp_ExportDatabase mytest   ----mytest表示源数据实体的名称

无忧站长学院,建站自然无忧www.5ucms.org

本站推荐: 5ucms模板下载 5ucms插件下载 仿站联系Q3876307       [复制给好友] [打印] [关闭] [返回] [顶部]
上一篇:5ucms仿站,SQL Server数据库和XML标识语言的集成
下一篇:5ucms培训,SQL Server数据汇总完全解析
本站声明:本网站所载文章等内容,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权及其它问题,请在30日内与本网联系(Email:3876307#qq.com),我们将在第一时间删除内容。若原创内容转载请注明出处。
5ucms模版,SQL Server数据库下教你如何做导库SQL的关键词:
评论信息
相关分类
本周热门
本月热门
关于我们 - 版权/免责 申明 - 建站服务 - 网站地图 - 稿件投递 - 联系我们 - 5ucms
Copyright © 2008-2015 www.5ucms.org