代码之家  ›  专栏  ›  技术社区  ›  Andrey

sqlcommandbuilder.deriveparameters(command)和isnullable

  •  1
  • Andrey  · 技术社区  · 15 年前

    我编写了一个o/r数据库包装器,它为从数据库中读取的存储过程生成一些包装器方法。

    现在,如果存储过程的输入参数默认为空,我需要生成一些自定义包装器代码。问题是-我使用以下方法获取存储的proc参数:

    SqlCommandBuilder.DeriveParameters(command)
    

    它不会带来参数默认值。有什么办法可以查到这些违约情况吗?它们存储在数据库的任何地方吗?

    顺便说一下,我使用的是sql server 2008

    2 回复  |  直到 12 年前
        1
  •  1
  •   Thomas    15 年前

    对于T-SQL存储过程,唯一的方法是从 sys.sql_modules 表。从sys.parameters表中关于 has_default_value 专栏:

    1=参数有默认值。

    SQL Server只保留默认值 此目录中CLR对象的值 视图;因此,此列有 Transact-SQL对象的值为0。 查看 transact-sql对象中的参数, 查询的定义列 sys.sql_modules目录视图,或使用 对象定义系统功能。

    下面是一篇文章,作者编写了一个t-sql函数,据说它可以做到这一点: Figure Out the Default Value of Stored Procedure Parameters.

        2
  •  -1
  •   Tim Post Samir J M Araujo    12 年前

    基本上,sqlcommandbuilder类自动生成单个表命令,用于协调对数据集所做的更改与sql server。