我想从SQL Server 2005生成脚本,即存储过程和用户定义的函数。我是通过SQL管理工作室完成的,但我想通过命令行完成。是否有任何方法可以通过命令行参数(如sqlcmd.exe或任何其他脚本)来执行此操作。
答案 0 :(得分:1)
将sp_helptext与来自SQLCMD的查询一起使用 http://msdn.microsoft.com/en-us/library/ms176112.aspx
答案 1 :(得分:0)
如果您更喜欢具有更大灵活性的东西,请查看sys.sql_modules系统视图,因为它为您提供了有关该对象的一些额外信息,并且具有能够加入其他系统表的良好能力。
MauMen的其余部分是正确的方向:使用SQLCMD生成带有“-o OutputFile.sql”的文件的输出。
例如,创建一个proc:
create proc dbo.pr_procDefTest
as
print 'This is a proc definition'
go
显示定义:
select m.definition
from sys.procedures p
inner join sys.sql_modules m on p.object_id = m.object_id
where p.name = 'pr_procDefTest'
使用SQLCMD输出:
sqlcmd -E -S .\sqlexpress -d test -o OutputFile.sql -Q "set nocount on; select m.definition from sys.procedures p inner join sys.sql_modules m on p.object_id = m.object_id where p.name = 'pr_procDefTest'" -h -1 -w 65535
传递了各种参数,您可以在sqlcmd Utility MSDN page上查找。需要注意的重要一点是使用“set nocount on”;在脚本的开头,以防止“(1行受影响)”页脚。
答案 2 :(得分:0)
$ pip install mssql-scripter
# script the database schema and data piped to a file.
$ mssql-scripter -S localhost -d AdventureWorks -U sa --include-objects StoredProcs --schema-and-data > ./myFile.sql
更多用法示例在我们的GitHub页面上:https://github.com/Microsoft/sql-xplat-cli/blob/dev/doc/usage_guide.md