tengo un método en una asamblea que se parece a esto:Tipos no coinciden para crear un procedimiento almacenado CLR
namespace MyNameSpace
{
public class MyClass
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void MyMethod(SqlChars myMessage)
{
// Stuff here
}
}
}
Compilo que a una DLL y cargarlo en mi SQL Server como esto:
drop assembly MyAssembly
create assembly MyAssemblyfrom 'C:\Scripts\MyAssembly.dll'
Todo funciona bien.
Pero ahora trato de ejecutar este:
CREATE PROCEDURE MySproc @message nvarchar(max)
AS EXTERNAL NAME MyAssembly.[MyNameSpace.MyClass].MyMethod
Cuando corro que me sale este error:
CREATE PROCEDURE for "MySproc " failed because T-SQL and CLR types for parameter "@myMessage" do not match.
Alguna idea de cómo puedo solucionar esto?
también he tratado de estas firmas de método:
public static void MyMethod(string myMessage)
public static void MyMethod([SqlFacet(MaxSize = -1)] string myMessage)