我在程序集中有一个如下所示的方法:
namespace MyNameSpace
{
public class MyClass
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void MyMethod(SqlChars myMessage)
{
// Stuff here
}
}
}
我将其编译为 dll 并将其加载到我的 SQL Server 中,如下所示:
drop assembly MyAssembly
create assembly MyAssemblyfrom 'C:\Scripts\MyAssembly.dll'
一切都很好。
但现在我尝试运行这个:
CREATE PROCEDURE MySproc @message nvarchar(max)
AS EXTERNAL NAME MyAssembly.[MyNameSpace.MyClass].MyMethod
当我运行时,我收到此错误:
“MySproc”的 CREATE PROCEDURE 失败,因为参数“@myMessage”的 T-SQL 和 CLR 类型不匹配。
我有什么想法可以解决这个问题吗?
我也尝试过这些方法签名:
public static void MyMethod(string myMessage)
public static void MyMethod([SqlFacet(MaxSize = -1)] string myMessage)
这是显示 CLR 到 SQL Server 数据类型的映射的链接
http://msdn.microsoft.com/en-us/library/ms131092.aspx http://msdn.microsoft.com/en-us/library/ms131092.aspx
在您的情况下,SQLChars 映射到 nvarchar
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)