使用命令行或任何其他方法保存存储过程

时间:2015-09-02 11:29:05

标签: sql batch-file cmd sql-server-2012

我正在使用MS SQL Server 2012进行开发。我的数据库有很多存储过程。它每天都有一些要求。有时我应该在更改SP后改变我的开发。所以我所做的是,在更改SP之前,我通常会得到一个备份(右击SP - >修改 - >并保存到我当地的硬盘位置。)这对我来说非常头疼,因为每次都是我应该这样做以获得SP备份。

有没有方法可以将SP保存到本地硬盘位置? (使用命令提示符或任何其他方法)

2 个答案:

答案 0 :(得分:2)

使用sp_helptext方法考虑xp_cmdshell。下面将存储过程的代码输出到文本文件。查看bcp utility的更多参数:

Public Sub setColor()
 Dim wbk As Excel.Workbook
 Set wbk = ActiveWorkbook

 Dim stl As style

 Dim styleExists As Boolean
 styleExists = False

 For Each stl In wbk.Styles
     If stl.Name = "styleX" Then
         styleExists = True
     End If
 Next stl

 If styleExists = False Then
     With wbk.Styles.Add("styleX")
      .Interior.Color = vbYellow
     End With
 End If

 wbk.ActiveSheet.Cells(1, 1).style = "styleX"
End Sub

或者,使用编程语言(C#,VB,Java,Python,PHP)连接到数据库并执行DECLARE @OutputFile NVARCHAR(100), @FilePath NVARCHAR(100) , @bcpCommand NVARCHAR(1000) SET @bcpCommand = 'bcp "execute sp_helptext dbo.sp_name" queryout ' SET @FilePath = 'C:\path\to\folder\' SET @OutputFile = 'FileName1.txt' SET @bcpCommand = @bcpCommand + @FilePath + @OutputFile + ' -c -t, -T -S'+ @@servername exec xp_cmdshell @bcpCommand 命令并将结果传递给文本文件以备份。甚至可以迭代循环遍历所有存储过程。

答案 1 :(得分:0)

查看SQL Server数据库项目。您只需在Visual Studio IDE中进行更改,然后在您对它感到满意时部署到目标数据库。无需对源代码文件进行逆向工程。

此外,您可以导入现有数据库。