首页 > 解决方案 > SMO 创建的存储过程中的短路

问题描述

由于我不允许合理化一个庞大而可恶的数据库,我不得不为我的应用程序创建一个 C# Datalayer 生成器。我已经完成了很多工作,使用 T4 生成模型类和 Insight.Database 存储库,但我需要通过 Sql 管理对象创建我的用户定义表类型和存储过程。

我感兴趣的是,我可以在通过 SMO 创建时使用短路参数吗?我想要复制的是这样的:

CREATE PROCEDURE [dbo].[cip_GetLicenses]
    @fldIndex int = null
AS
SELECT [fldIndex]
      ,[fldLicenceData]
  FROM [dbo].[tblLicences]
  WHERE (@fldIndex is NULL OR (fldIndex = @fldIndex))

我可以使用字符串生成器和一些列迭代相对容易地构造存储过程的主体,但创建参数是单独完成的。

StoredProcedureParameter 类型确实有一个 DefaultValue 属性,但它是一个字符串,遗憾的是,将其设置为“= null”只会在运行时引发异常。

任何人都可以建议吗?

标签: c#sql-servertsqlsmo

解决方案


推荐阅读