22,302
社区成员




create procedure ptest
@a char(6),
@b int = 33
as
begin
print 3
end
go
;with cte as(
select object_definition((select id from sysobjects where name='ptest')) as s
),c2 as(
select ltrim(substring(s,charindex('=',s,charindex('@b',s))+1,charindex('as',s,charindex('@b',s))-charindex('=',s,charindex('@b',s))+1))s from cte
)select left(s,charindex(' ',s)-1) from c2
/*
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
33
(1 行受影响)
*/
go
drop procedure ptest
--第一种查看方式
select object_definition((select id from sysobjects where name='ptest'))
--第二种查看方式
select definition from sys.sql_modules
where object_id=(select id from sysobjects where name='ptest')
--第三种查看方式
select [text] from syscomments where id=
(select id from sysobjects where name='ptest')
select name,parameter_id,max_length,default_value from sys.parameters
where object_id=(select id from sysobjects where name='ptest')
/*
name parameter_id max_length default_value
-------------------- ------------ ---------- ---------------
@a 1 6 NULL
@b 2 4 NULL
*/