我正在尝试将一些存储过程从一台服务器复制到另一台服务器。它大部分工作正常,但我有一些SP,其中定义了@max_heap_table_size。然后.Net连接器拒绝使用错误“参数'@max_heap_table_size'必须定义。”。如何管理不使用参数的命令?
代码的一部分(scom是source-command,tcom是target-command):
scom.CommandText = "show create procedure `" & proc & "`"
rd = scom.ExecuteReader
If rd.Read() Then
Dim cmd As String = "delimiter $$" & Environment.NewLine & rd.GetString(2) & "$$" & Environment.NewLine & "delimiter ;"
tcom.CommandText = cmd
tcom.ExecuteNonQuery()
End If
用户和权限没有问题。某些SP以这种方式复制没有任何问题。但是使用全局MySQL变量的SP不能以这种方式复制。
谢谢!
编辑:问题被标记为VB.net和C#,因为它独立于.Net语言。
Edit2:proc是存储过程的名称,rd.GetString(2)返回“show create procedure”(参见代码的前两行)。它在MySQL索引2中从MySQL返回。