快速业务通道

复制表结构的通用存储过程

作者 佚名技术 来源 数据库编程 浏览 发布时间 2012-03-21
), @desc varchar(255)

IF ISNULL(@ServerName,N'''')=N'''' SET @ServerName=@@SERVERNAME
IF ISNULL(@Source_DB,N'''')=N'''' SET @Source_DB=DB_NAME()

--创建sqldmo对象·
EXEC @err=sp_oacreate ''sqldmo.sqlserver'',@srvid OUT
IF @err<>0 GOTO lb_Err

--连接服务器
IF ISNULL(@UserName,N'''')=N'''' --使用 Windows 身份登录
BEGIN
    EXEC @err=sp_oasetproperty @srvid,''loginsecure'',-1
    IF @err<>0 GOTO lb_Err

    EXEC @err=sp_oamethod @srvid,''connect'',NULL,@servername
END
ELSE
    EXEC @err=sp_oamethod @srvid,''connect'',NULL,@servername,@UserName,@pwd

IF @err<>0 GOTO lb_Err

--获取数据库集
EXEC @err=sp_oagetproperty @srvid,''databases'',@Dbid OUT
IF @err<>0 GOTO lb_Err

--选择源数据库    
EXEC @err=sp_oamethod @Dbid,''item'',@S_dbid OUT,@Source_DB
IF @err<>0 GOTO lb_Err

--选择目标数据库    
EXEC @err=sp_oamethod @Dbid,''item'',@D_dbid OUT,@Des_DB
IF @err<>0 GOTO lb_Err

--设置复制的对象
EXEC @err=sp_oacreate ''SQLDMO.Transfer'',@TransferID OUT
IF @err<>0 GOTO lb_Err

--设置目标服务器信息
EXEC @err=sp_oasetproperty  @TransferID,''DestServer'',@ServerName
IF @err<>0 GOTO lb_Err

  --设置连接用户
IF ISNULL(@UserName,N'''')=N'''' --使用 Windows 身份登录
BEGIN
    EXEC @err=sp_oasetproperty @TransferID,''DestUseTrustedConnection'',1
    IF @err<>0 GOTO lb_Err
END
ELSE
BEGIN
    EXEC @err=sp_oasetproperty @TransferID,''DestLogin'',@UserName
    IF @err<>0 GOTO lb_Err

    EXEC @err=sp_oasetproperty @TransferID,''DestPassword'',@pwd
    IF @err<>0 GOTO lb_Err
END

  --设置复制对象信息
EXEC @err=sp_oasetproperty @TransferID,''DestDatabase'',@Des_DB
IF @err<>0 GOTO lb_Err

DECLARE tb CURSOR FAST_FORWARD LOCAL
FOR
SELECT Name FROM(
    SELECT KeyWord=N'',D,'',   Name=N''CopyAllDefaults'' UNION ALL
    SELECT KeyWord=N'',O,'',   Name=N''CopyAllObjects'' UNION ALL
    SELECT KeyWord=N'',R,'',   Name=N''CopyAllRules'' UNION ALL
    SELECT KeyWord=N'',P,'',   Name=N''CopyAllStoredProcedures'' UNION ALL
    SELECT KeyWord=N'',T,'',   Name=N''CopyAllTables'' UNION ALL
    SELECT KeyWord=N''

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号