), @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'' |