SqlCommandBuilder.DeriveParameters(命令)和IsNullable

时间:2010-04-12 03:59:49

标签: sql-server orm sqlcommandbuilder

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

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

SqlCommandBuilder.DeriveParameters(command)

并且它不带参数默认值。有没有办法查找这些默认值?它们是否存储在数据库中的任何位置?

BTW,我正在使用SQL Server 2008

2 个答案:

答案 0 :(得分:1)

对于T-SQL存储过程,执行此操作的唯一方法是从sys.sql_modules表中解析过程定义。从sys.parameters表上关于has_default_value列的BOL:

  

1 =参数具有默认值。

     

SQL Server仅维护默认值   此目录中CLR对象的值   视图;因此,这个专栏有一个   Transact-SQL对象的值为0。   查看a的默认值   Transact-SQL对象中的参数,   查询的定义列   sys.sql_modules目录视图,或使用   OBJECT_DEFINITION系统功能。

以下是撰写T-SQL函数的人的一篇文章,据说这样做:Figure Out the Default Value of Stored Procedure Parameters.

答案 1 :(得分:-1)

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