如何通过SQL语句获取SQL SERVER 2008 存储过程参数默认值

madStone_l 2015-03-06 12:02:24
比如我的存储过程创建语句如下:

CREATE PROC [dbo].[SearchBillDetail]
(
@OpBeginDate DATETIME ,
@OpEndDate DATETIME ,
@BillTypeID INT ,
@BillOperType INT ,
@SaleOperID INT = 1,
@DrCompID INT = NULL
)
AS
SET NOCOUNT ON
-- 后面省略

这是我需要通过SQL语句查询出SearchBillDetail存储过程有多少个参数,并且每个参数是否有默认值,比如上面的例子中@SaleOperID、@DrCompID这两个参数有默认值,分别是1和NULL,其他参数就没有默认值
我通过以下语句

SELECT *
FROM sys.parameters
WHERE object_id = OBJECT_ID('SearchBillDetail')

EXEC sp_procedure_params_rowset @procedure_name = 'SearchBillDetail'

SELECT *
FROM syscolumns
WHERE id = OBJECT_ID('SearchBillDetail')

这些好像都是没有存储过程的参数默认值信息,求高手指导
...全文
502 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
云中客 2015-03-14
  • 打赏
  • 举报
回复
在这个表里找:syscomments,然后考虑如何代码实现
LongRui888 2015-03-14
  • 打赏
  • 举报
回复
引用 4 楼 madStone_l 的回复:
我觉得用什么办法可以拿到吧,比如SQL Server Management Studio中找到存储过程,展开,再展开参数。 这是就能显示那些参数有默认值,那些参数没有默认值
这个是通过程序来实现的,比如 smo对象来实现这个的。 如果要直接通过sql语句来实现,难度会很大。
madStone_l 2015-03-14
  • 打赏
  • 举报
回复
贴沉了。。。
madStone_l 2015-03-11
  • 打赏
  • 举报
回复
我觉得用什么办法可以拿到吧,比如SQL Server Management Studio中找到存储过程,展开,再展开参数。
这是就能显示那些参数有默认值,那些参数没有默认值
madStone_l 2015-03-06
  • 打赏
  • 举报
回复
理论上应该是有方法获取的吧,期待高手出现
还在加载中灬 2015-03-06
  • 打赏
  • 举报
回复
就我了解的程度,只能自己去解析了 你可以参考一下这边 http://bbs.csdn.net/topics/370018755
Q315054403 2015-03-06
  • 打赏
  • 举报
回复
sys.parameters 2008有,2005有没默认值就不记得了

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧