首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么通过命令行方式导出数据库的sql脚本

2012-05-27 
如何通过命令行方式导出数据库的sql脚本不找第三方工具,系统自带的 sql server managerment studio来导出。

如何通过命令行方式导出数据库的sql脚本
不找第三方工具,系统自带的 sql server managerment studio来导出。
ssms提供了一个脚本向导的窗口来进行导出,但每次都需要开ssms,而且还要一步一步的点next,所以想找看有没有命令行的方式实现这个功能。

[解决办法]
建库脚本? 没找到好办法
[解决办法]
貌似没有命令方式导出脚本的. 问题是,楼主为何会有这种需求?
难道经常需要导出建库脚本吗,库结构很经常变更吗.
[解决办法]
参考:

SQL code
生成2005数据库结构脚本http://topic.csdn.net/u/20100504/09/19616cd8-ebaf-4a89-8383-5a7a95d81a0c.html?74663--以下生成整个数据库的SQL脚本,我测试了,相当好用。     --(scptxfr.exe的路径要正确以下是我的路径)     declare   @cMd   varchar(1000)     set   @cmd   =   'master.dbo.xp_cmdshell   '   +       '''c:\"Microsoft   '   +     'SQL   Server"'   +     '\MSSQL\Upgrade\scptxfr.exe   '   +     '   /s   YourServerName   /p   YourSAPassword   /I   /d   YourDBName   /f   '   +     'c:\YourDBName.sql'''     exec   (@cmd)             工具参数说明:         命令行语法:     SCPTXFR   /s   <服务器>   /d   <数据库>   {[/I]   |   [/P   <密码>]}                     {[/F   <脚本文件目录>]   |   [/f   <单个脚本文件>]}                     /q   /r   /O   /T   /A   /E   /C   <CodePage>   /N   /X   /H   /G   /Y   /?         /s             —             指示要连接到的源服务器。     /d             —             指示要为之编写脚本的源数据库。     /I             —             使用集成安全性。     /P             —             sa   要用的密码。请注意登录   ID   始终为   sa。                                     若/P不使用或标志后面没有密码,                                     则将使用空密码。不与   /I   兼容。     /F             —             脚本文件应生成到的目录。                                     这意味着为每个对象分类生成一个文件。     /f             —             所有脚本将保存到的单个文件。                                     不与   /F   兼容。     /q             —             在所生成的脚本中使用被引用的标识符。     /r             —             为脚本中的对象包括   drop   语句。     /O             —             生成   OEM   脚本文件。无法用于   /A   或   /T。                                     这是默认的行为。     /T             —             生成   UNICODE   脚本文件。无法用于   /A   或   /O。     /A             —             生成   ANSI   脚本文件。无法用于   /T   或   /O。     /?             —             命令行帮助。     /E             —             发生错误时停止脚本编写。                                     默认行为是记录该错误而后继续。     /C             —             指示替代服务器   CodePage(代码页)的   CodePage。     /N             —             生成   ANSI   PADDING。     /X             —             编写   SP   和   XP   脚本以分隔文件。     /H             —             生成不带首部的脚本文件。(默认:   带首部)。     /G             —             使用指定的服务器名称作为所生成的输出文件的前缀(     中的划线)。     /Y             —             为“扩展属性”生成脚本(仅对   8.x   服务器有效)。
[解决办法]
探讨

参考:
SQL code
生成2005数据库结构脚本
http://topic.csdn.net/u/20100504/09/19616cd8-ebaf-4a89-8383-5a7a95d81a0c.html?74663

--以下生成整个数据库的SQL脚本,我测试了,相当好用。
--(scptxfr.exe的路径要正确以下是我的路径)
declare @cMd ……

[解决办法]
使用 vbs 脚本访问 Microsoft.SqlServer.Management.Smo.Scripter 组件就可以实现了。

[解决办法]
下面的脚本保存为C:\DBAScripts\Script-Db.ps1
SQL code
param([string] $SQLServername,[string] $Databasename,[string] $filepath)[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null$MyScripter=New-Object ("Microsoft.SqlServer.Management.Smo.Scripter")$srv=New-Object "Microsoft.SqlServer.Management.Smo.Server" $SQLServername$MyScripter.Server=$srv$scrcontent=$MyScripter.Script($srv.databases["$Databasename"])$date=Get-Date$suffix="_"+$date.year.tostring()+"_"+$date.month.tostring()+"_"+$date.day.tostring()$filepath=$filepath+$databasename+"_db_"+$suffix+".sql"$scrcontent2="use [master]"+"`r`n"+"Go"+"`r`n"foreach ($str in $scrcontent){$scrcontent2=$scrcontent2+ $str+"`r`n"+"Go"+"`r`n"}Out-File -inputobject $scrcontent2 -filepath $filepath -encoding "Default" 

热点排行
Bad Request.