【发布时间】:2011-09-19 05:52:59
【问题描述】:
我知道在数据库中创建过程时可以为 CLR 过程定义默认值,如下所示:
CREATE PROCEDURE [dbo].[ShredXml] (
@InputXml [xml],
@AttributeElementHandling [tinyint] = 0,
@ConversionHandling [tinyint] = 0,
@RootElementName [nvarchar](255) = null
)
AS EXTERNAL NAME [ClrXmlShredder].[ClrXmlShredder].[ShredXml]
我不知道是否有任何方法可以说服 Visual Studio 在使用其“部署项目”选项时自动执行此操作...
当它在数据库中创建 proc 时,是否可以在参数上设置一个属性来告诉 Visual Studio 您希望该参数的默认值是什么?
更新:我尝试设置可空性“SqlFacet”,这似乎没有任何效果(我猜这是有道理的 - afaik 存储的 proc 参数总是可以为空的?)
[Microsoft.SqlServer.Server.SqlProcedure]
public static void ShredXml(SqlXml InputXml,
[SqlFacet(IsNullable = true)]SqlByte AttributeElementHandling,
[SqlFacet(IsNullable = true)]SqlByte ConversionHandling,
[SqlFacet(MaxSize = 255, IsNullable = true)]string RootElementName
)
{
}
【问题讨论】:
-
你有没有碰巧找到解决这个问题的方法?
-
@tbone 不,我没有,但老实说,两年多前我也不再担心这个问题了,使用 VS2008;不知道以后的版本有没有变化。
标签: sql-server visual-studio-2008 deployment sqlclr sql-server-data-tools