我正在开发一个存储过程,它使用整数作为键以及其他几个变量来执行自定义sql逻辑。我希望能够动态创建此过程的新部分,以便具有sql知识的人可以添加新的自定义逻辑,而无需使用sql management studio来创建它。
以下是我的方法。不幸的是,在执行sql语句时,我无法将多行应用为多行。由于程序中有注释,这不起作用。我尝试过使用SqlCommand对象,但这也无效。我也尝试过Chr(6)+ Chr(10)(我认为那些是正确的Chrs),但这只是作为文本发送到sql。
Public Sub UpdateLogicQueryDefinition(CampaignID As Integer, CalcID As Integer, CalcObjectName As String, AppendedText() As String)
Dim dr As DataRow, FinalQuery As String = "", SingleLine As String = ""
Dim NextLine As String = Environment.NewLine
For Each dr In ds_ExistingLogic.Tables(0).Rows
FinalQuery = FinalQuery & dr("Text") & NextLine
If dr("Text").Trim() = "--Insertion point 1" Then
FinalQuery = FinalQuery & " IF @CustomLogicNumber = " & CalcID & NextLine
FinalQuery = FinalQuery & " BEGIN " & NextLine
FinalQuery = FinalQuery & " Goto " & CampaignID & "_" & CalcObjectName & NextLine
FinalQuery = FinalQuery & " END " & NextLine
FinalQuery = FinalQuery & NextLine
End If
If dr("Text").Trim() = "--Insertion point 2" Then
FinalQuery = " " & FinalQuery & CampaignID & "_" & CalcObjectName & ":" & NextLine
For Each SingleLine In AppendedText
FinalQuery = FinalQuery & SingleLine & NextLine
Next
FinalQuery = FinalQuery & " Return " & NextLine
FinalQuery = FinalQuery & NextLine
End If
Next
FinalQuery.Replace("CREATE PROCEDURE [dbo].[spCustomLogic]", "ALTER PROCEDURE [dbo].[spCustomLogic]")
db.ExecuteNonQuery(FinalQuery)
有谁知道如何让这个查询识别多行,以便我可以动态更新此过程?感谢
编辑:评论让我放弃了这种方法。我将使用两个过程,因此我可以使用sql而不是代码编辑我的过程。感谢