次のように、データベースでプロシージャを作成するときに、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を作成するときに、その引数のデフォルト値をビジュアルスタジオに伝えるために引数に設定できる属性はありますか?
更新: null 可能性 "SqlFacet" を設定しようとしましたが、効果がないように見えました (これは理にかなっていると思います - 保存された proc パラメータは常に null 可能ですか?)
[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
)
{
}