数据库中的表对象脚本可以用以下存储过程来备份.
它可以备份数据库中任何对象脚本(不包括数据信息)
注意: 以下存储过程在sql server 2000 sp3以上版本测试通过.
--生成整个数据库脚本.
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 '+@Path
if 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
调用如下:
P_GetJenerateCurrentDBObjectsScript '','','密码'