是否有替代sp_help包含参数的默认值?SQL Server:具有默认值的sp_help
0
A
回答
1
我的确希望默认值在sys.all_parameters
中可用,实际上该视图的列号为default_value
。但不幸的是,它不用于T-SQL存储过程。 MSDN说:
SQL Server只保留默认本目录 观点CLR对象 值;因此,对于 Transact-SQL对象,此列 的值始终为0。要查看 Transact-SQL对象中参数的 默认值,请查询 sys.sql_modules目录视图的 定义列或使用OBJECT_DEFINITION系统函数的 。
因此,它似乎获取存储过程参数的默认值的唯一方法是解析对象定义。
0
我相信唯一的内置方法是使用sp_helptext来查看整个过程文本。
1
This article可能很有用,它实际上提供了示例代码来解析例程定义以确定默认参数。
我预计这将在未来版本中解决 - 这是元数据中的重大差距,并且没有真正的理由不应该提供。
另一种可能性是定期解析特效和标记,扩展属性自己的参数 - 扩展属性是更容易对查询,你可以用它们来自动文档数据库:
USE [SandBox]
GO
/****** Object: StoredProcedure [dbo].[usp_Test] Script Date: 04/01/2010 20:23:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[usp_Test]
@input INT = 0
AS BEGIN
SELECT @input AS [output]
END
GO
EXEC sys.sp_addextendedproperty @name=N'TestXP', @value=N'testing' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'PROCEDURE',@level1name=N'usp_Test', @level2type=N'PARAMETER',@level2name=N'@input'
GO
相关问题
- 1. SQL Server - 默认值
- 2. 具有“默认值”的SQL GROUP BY
- 3. Linq-to-SQL忽略SQL Server默认值
- 4. SQL Server 2000 - varchar字段的默认值
- 5. sql server:获得列的默认值
- 6. 更改SQL Server 2012中的默认值
- 7. 的SQL Server:了解默认值
- 8. 具有不同端口的SQL Server默认实例
- 9. 在SQL Server中修改默认值
- 10. Sql Server CE 4插入默认值
- 11. SQL Server Table Owner - 更改默认值
- 12. SQL Server - 更改列默认值
- 13. 检查SQL Server复制默认值
- 14. SQL Server XP_READREG - 读取默认键值
- 15. 改变表'默认'不设置默认值 - SQL Server
- 16. SQL默认值
- 17. SQL默认值
- 18. SQL Server sp_help只提取列信息
- 19. 如何确定SQL Server存储过程参数是否具有默认值?
- 20. 要添加具有默认值的列的SQL - Access 2003
- 21. 具有默认值的PHP任务
- 22. 具有默认值的SQLite数据库
- 23. 具有默认参数值的create_function?
- 24. 具有默认值的Swift仿制药
- 25. 具有默认值的列 - usql
- 26. 默认关键字,具有mssql中的唯一默认值
- 27. SQL Server默认值:为什么有一个或两个括号?
- 28. 在SQL Server中为没有指定默认值的列生成默认值的脚本
- 29. 将默认值设置为模式已具有默认值的字段
- 30. SQL Server 2008中默认的用户名