是否有替代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 Server列的默認值
- 3. 具有「默認值」的SQL GROUP BY
- 4. SQL Server - 使用默認值
- 5. Linq-to-SQL忽略SQL Server默認值
- 6. SQL Server默認值不會作爲實體默認值出現
- 7. SQL Server 2000 - varchar字段的默認值
- 8. 更改SQL Server 2012中的默認值
- 9. 的SQL Server:瞭解默認值
- 10. sql server:獲得列的默認值
- 11. 具有默認值的ALTER TABLE:SQL Server vs Oracle
- 12. 具有不同端口的SQL Server默認實例
- 13. 在SQL Server中修改默認值
- 14. 檢查SQL Server複製默認值
- 15. SQL Server - 更改列默認值
- 16. SQL Server XP_READREG - 讀取默認鍵值
- 17. Sql Server CE 4插入默認值
- 18. SQL Server Table Owner - 更改默認值
- 19. SQL Server sp_help只提取列信息
- 20. 改變表'默認'不設置默認值 - SQL Server
- 21. SQL默認值
- 22. SQL默認值
- 23. rails add_column具有默認值但默認值不生效
- 24. 如何確定SQL Server存儲過程參數是否具有默認值?
- 25. SQL:具有「基本爲空」默認值的目的是什麼?
- 26. 要添加具有默認值的列的SQL - Access 2003
- 27. 具有默認值的通用解析
- 28. 具有默認值的Sass配置圖
- 29. 具有默認值的Swift仿製藥
- 30. 具有默認值的PHP任務