SqlServer导库语句
GO
/****** 对象: StoredProcedure [dbo].[sp_ExportDatabase] 脚本日期: 07/18/2013 12:37:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
----该存储过程建立在新帐套中,并在新账套中执行
if Exists(select * from sysobjects where name=N'sp_ExportDatabase' And Xtype='P')
Drop PROCEDURE [sp_ExportDatabase]
Go
CREATE PROCEDURE [dbo].[sp_ExportDatabase] (
)
) ----创建存储过程 sp_ExportDatabase
AS
Begin
Set NoCount On
Declare @Utb sysname ------用户表名
Declare @ColName sysname ------列名
Declare @tid int ------用户表的ID
Declare @sql nvarchar(MAX)------存放拼出的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
)
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
)
Begin
Select @Utb='Dbo.'+@Utb
exec (' Delete ' + @Utb)
Set @sql='['
Open Clu
Fetch Clu Into @ColName
)
Begin ----把列名以逗号隔开,拼成字符串
Set @sql=@sql+ @ColName + '],['
Fetch Clu Into @ColName
End
Close Clu
DeAllocate Clu
----构造字符串
Set @len=Len(@sql)
Begin ----把源数据库中的表导入到当前数据库中
)
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
)
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!'
End
使用方法
Exec sp_ExportDatabase mytest ----mytest表示源数据实体的名称
SqlServer导库语句的更多相关文章
- sqlserver 多库查询 sp_addlinkedserver使用方法(添加链接服务器)
sqlserver 多库查询 sp_addlinkedserver使用方法(添加链接服务器) 我们日常使用SQL Server数据库时,经常遇到需要在实例Instance01中跨实例访问Instanc ...
- 【转载】C#常用数据库Sqlserver通过SQL语句查询数据库以及表的大小
在Sqlserver数据库中,一般我们查看数据库的大小可以通过查找到数据库文件来查看,但如果要查找数据表Table的大小的话,则不可通过此方法,在Sqlserver数据库中,提供了相应的SQL语句来查 ...
- SqlServer 一个查询语句以致tempdb增大55G (转载)
SqlServer 一个查询语句导致tempdb增大55G 今天操作着服务器,突然右下角提示“C盘空间不足”! 吓一跳!~ 看看C盘,还有7M!!!这么大的C盘空间怎么会没了呢?搞不好等下服务器会动不 ...
- SqlServer中Sql语句的逻辑执行顺序
准备数据 Sql脚本如下,两张表,一张客户表Customers只包含customerid和city字段,一张订单表Orders包含orderid和customerid(关联Customers的cust ...
- SQLSERVER读懂语句运行的统计信息
SQLSERVER读懂语句运行的统计信息 对于语句的运行,除了执行计划本身,还有一些其他因素要考虑,例如语句的编译时间.执行时间.做了多少次磁盘读等. 如果DBA能够把问题语句单独测试运行,可以在运行 ...
- CREATE DATABASE建库语句详解
原创地址:http://blog.csdn.net/guguda2008/article/details/5716939 一个完整的建库语句是类似这样的: IF DB_ID('TEST') IS NO ...
- oracle导库
cmd窗口直接输入导库命令即可,不需要进入sqlplus C:\Documents and Settings\Administrator> imp username/pass@orcl file ...
- 【转载】Sqlserver的SQL语句实现分页查询
在应用程序的开发中,如果数据库中的数据量过于的庞大,则需要针对查询数据做分页处理,取出对应分页中的数据,在Sqlserver分页的语句写法中,有两种比较常用,一种是数据表中含有自增量Id的情况,可以根 ...
- SqlServer 一个查询语句导致tempdb增大55G(转载)
SqlServer 一个查询语句导致tempdb增大55G 今天操作着服务器,突然右下角提示“C盘空间不足”! 吓一跳!~ 看看C盘,还有7M!!!这么大的C盘空间怎么会没了呢?搞不好等下服务器会动不 ...
随机推荐
- hdu 4740 The Donkey of Gui Zhou(dfs模拟好题)
Problem Description There was no donkey ,) , the down-right cell ,N-) and the cell below the up-left ...
- javascript第十八课:windowd对象的方法
window.confirm('确定删除吗?'); //当用户点击一个按钮出发一个事件的时候,弹出一个提示框让网友确认,返回一个bool值,点确定的话,返回true,点取消,返回flase windo ...
- C#/winform 旅游管理信息系统
工具:Visual Studio 2015,sql server2014 1.系统概述 该旅游管理信息系统可以为游客和公司业务管理员提供服务.游客可以对旅游路线,旅游班次,旅游团,保险,导游,交通工具 ...
- DayOfWeek中英文星期转换
DateTime.Now.DayOfWeek; //英文星期几 var dayOfWeek = new List<string>() { "星期日", " ...
- ParNew收集器
ParNew收集器其实就是Serial收集器的多线程版本,除了使用多条线程进行垃圾收集之外,其余行为包括Serial收集器可用的所有控制参数,其中Par是Paralle简写l 并行(Parallel) ...
- Bootstrap插件——(Tab)标签页
项目中用到了Bootstrap的(Tab)标签页插件,记录如下: 代码如下: <div class="tabbable"> <ul class="nav ...
- vim highlight whitespace at end of line and auto delete them
install Vundle.vim mkdir ~/.vim/bundle git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bun ...
- 【转】Perl Unicode全攻略
Perl Unicode全攻略 耐心看完本文,相信你今后在unicode处理上不会再有什么问题. 本文内容适用于perl 5.8及其以上版本. perl internal form 在Perl看来, ...
- 《pigcms v6.2最新完美至尊版无任何限制,小猪微信源码多用户微信营销服务平台系统》
<pigcms v6.2最新完美至尊版无任何限制,小猪微信源码多用户微信营销服务平台系统> 前两天分享了套小猪CMS(PigCms)多用户微信营销服务平台系统V6.1完美破解至尊版带微用户 ...
- VB6.0 String 用法总结
问题一 VB 去掉字符串的头尾的空格 使用trim() 如: trim(" hello world ")= "hello world" 问题二 判断一个字符串是 ...