如何将sql_variant参数添加到SQL CLR存储过程?使用System.Object不起作用,并且我看不到任何可以使用的属性。
[Microsoft.SqlServer.Server.SqlProcedure] public static void ClearOnePartition( SqlString aString , /* I want this to be a sql_variant */ object aVariant ) { //do stuff here }
在“从SQL Books Online映射CLR参数数据”中,列出了“对象”作为用于映射sql_variant的正确类型。
我创建了一个简单的SQL Server项目,并向其中添加了以下类:
public partial class StoredProcedures { [Microsoft.SqlServer.Server.SqlProcedure] public static void StoredProcedure1(object param1) { // Put your code here //Trace.Write(param1); SqlContext.Pipe.Send(param1.ToString()); } };
然后,我修改了test.sql文件以执行此存储的proc:
DECLARE @thing sql_variant = 'hahahahaha'; EXEC dbo.StoredProcedure1 @thing
这将按预期运行,并产生以下输出:
哈哈哈哈哈 没有受影响的行。 (返回0行) 完成运行sp_executesql。
哈哈哈哈哈
没有受影响的行。
(返回0行)
完成运行sp_executesql。