ALTER PROCEDURE [dbo].[IST_Notice_Status]
(
@FTNO varchar(64)='000000',
@FStatus int = -1,
@FLastModifyNO varchar(64)='',
@errMsg varchar(255) output
)怎么取得 @FTNO,@FStatus,@FLastModifyNO 默认值?从 sys.parameters 表中取得这三个参数的 default_value 都是 null希望能返回一个结果:
name value
@FTNO | '000000'
@FStatus | -1
@FLastModifyNO | ''
(
@FTNO varchar(64)='000000',
@FStatus int = -1,
@FLastModifyNO varchar(64)='',
@errMsg varchar(255) output
)怎么取得 @FTNO,@FStatus,@FLastModifyNO 默认值?从 sys.parameters 表中取得这三个参数的 default_value 都是 null希望能返回一个结果:
name value
@FTNO | '000000'
@FStatus | -1
@FLastModifyNO | ''
That column will be NULL for Transact-SQL procedure parameters.只有CLR的存储过程才能看到default value,TSQL的存储过程看不到。
CREATE PROCEDURE dbo.spDummy
@para1 int = 123, @para2 int
AS
BEGIN
SELECT 'Hello World' AS Result;
ENDselect * from sys.parameters
where object_id = object_id('dbo.spDummy')
可以看到default value这列的值是null参考
http://msdn.microsoft.com/en-us/library/ms187926.aspx
select definition
from sys.sql_modules
where object_id=object_id('IST_Notice_Status')
SQL Server 只维护该目录视图中的 CLR 对象的默认值;因此,对于 Transact-SQL 对象,此列包含值 0。若要查看 Transact-SQL 对象中的参数的默认值,请查询 sys.sql_modules 目录视图的 definition 列,或使用 OBJECT_DEFINITION 系统函数。参考 http://msdn.microsoft.com/zh-cn/library/ms176074.aspx