我编写了一个O / R数据库包装器,它为从数据库中读取的存储过程生成一些包装器方法。
现在我需要生成一些自定义包装器代码,如果存储过程的输入参数默认为NULL。问题是 - 我使用以下方法获取存储过程参数:
SqlCommandBuilder.DeriveParameters(command)
并且它不带参数默认值。有没有办法查找这些默认值?它们是否存储在数据库中的任何位置?
BTW,我正在使用SQL Server 2008
答案 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。