不分別用企業管理器的getscript。

解决方案 »

  1.   

    Create PROC P_GetJenerateCurrentDBObjectsScript
    @ServerName varchar(20)='', --要备份的服务器名称,不指定则备份当前服务器
    @dbname varchar(20)='', --要备份的数据库名称,不指定则备份当前数据库
    @Password varchar(20)='', --密码
    @BackupPath varchar(200)='D:\数据库脚本备份\' --文件保存路径
    As
    Begin
    declare @Path  varchar(400),@Cmd varchar(1000)
    exec  master.dbo.xp_regread    
               'HKEY_LOCAL_MACHINE',  
               'SOFTWARE\Microsoft\MSSQLSERVER\setup',  
               'SQLPath',@Path  output  
    set  @Path  = ''''+replace(@Path,':\',':\"')+'"'  +  '\Upgrade\scptxfr.exe'  
    set @Cmd='master.dbo.xp_cmdshell '+@Pathif isnull(@ServerName,'')='' set @ServerName=@@ServerName
    if isnull(@dbname,'')='' set @dbname=DB_NAME()--生成文件夹和目录
    set @Cmd=@Cmd+N'  /s '+@ServerName+' /d '+@dbname+' /p '+@Password+' /I /f  '
    set @BackupPath='MD '+@BackupPath+''+@dbname+''
    exec master..xp_cmdshell @BackupPath
    --生成数据库脚本
    set @Cmd=@Cmd+N''+REPLACE(@BackupPath,'MD','')+'\'+convert(varchar(10),getdate(),112)+'.sql'''
    exec(@Cmd)
    End
    GO--调用(你用EXEC sp_MSforeachdb 下数据库即可)
    P_GetJenerateCurrentDBObjectsScript '','','密码'
      

  2.   

    scptxfr.exe 不一定在你的sql 安装目录, 要求你安装sql server的时候, 安装了升级向导才会有的。不过, 你可以在安装光盘上查找这个文件, 复制到system32目录下就可以了, 还有一个与这个文件同名的资源文件, 一齐复制到system32目录
      

  3.   

    Create PROC P_GetJenerateCurrentDBObjectsScript
    @ServerName varchar(20)='',--要备份的服务器名称,不指定则备份当前服务器
    @dbname varchar(20)='',--要备份的数据库名称,不指定则备份当前数据库
    @Password varchar(20)='',--密码
    @BackupPath varchar(200)='D:\数据库脚本备份\'--文件保存路径
    As
    Begin
    declare @Path  varchar(400),@Cmd varchar(1000)
    exec  master.dbo.xp_regread    
               'HKEY_LOCAL_MACHINE',  
               'SOFTWARE\Microsoft\MSSQLSERVER\setup',  
               'SQLPath',@Path  output  
    set  @Path  = ''''+replace(@Path,':\',':\"')+'"'  +  '\Upgrade\scptxfr.exe'  
    set @Cmd='master.dbo.xp_cmdshell '+@Pathif isnull(@ServerName,'')='' set @ServerName=@@ServerName
    if isnull(@dbname,'')='' set @dbname=DB_NAME()--生成文件夹和目录
    set @Cmd=@Cmd+N'  /s '+@ServerName+' /d '+@dbname+' /p '+@Password+' /I /f  '
    set @BackupPath='MD '+@BackupPath+''+@dbname+''
    exec master..xp_cmdshell @BackupPath
    --生成数据库脚本
    set @Cmd=@Cmd+N''+REPLACE(@BackupPath,'MD','')+'\'+convert(varchar(10),getdate(),112)+'.sql'''
    exec(@Cmd)
    End
    GO--调用(你用EXEC sp_MSforeachdb 下数据库即可)
    P_GetJenerateCurrentDBObjectsScript '','','密码'--这个写得太强了