我已经写了一个O/R数据库包装器,它为它从数据库读取的存储过程生成一些包装器方法。
现在,如果存储的proc的输入参数缺省为NULL,我需要生成一些自定义包装器代码。问题是-我使用以下命令获取存储的proc参数:
SqlCommandBuilder.DeriveParameters(command)而且它不会带来参数默认值。有没有办法查找这些默认值?它们是否存储在数据库中的任何位置?
顺便说一句,我使用的是SQL Server 2008
发布于 2010-04-12 12:30:38
对于T-SQL存储过程,实现这一点的惟一方法是从sys.sql_modules表中解析出过程定义。从sys.parameters表中关于has_default_value列的BOL:
1=参数具有默认值。
SQL Server仅维护此目录视图中CLR对象的默认值;因此,对于Transact-SQL对象,此列的值为0。若要查看Transact-SQL对象中参数的默认值,请查询sys.sql_modules目录视图的definition列,或使用OBJECT_DEFINITION系统函数。
这里有一篇文章写给写了一个T-SQL函数的人,据说就是这样做的:Figure Out the Default Value of Stored Procedure Parameters.
发布于 2010-11-23 00:41:45
基本上,sqlcommandbuilder类会自动生成单个表命令,这些命令用于与sql服务器协调对数据集所做的更改。
https://stackoverflow.com/questions/2619808
复制相似问题