转:?http://blog.csdn.net/zlp321002/archive/2006/12/28/1465180.aspx
数据库中的表对象脚本可以用以下存储过程来备份.
它可以备份数据库中任何对象脚本(不包括数据信息)
注意: 以下存储过程在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?? '','','密码'
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|