Find Datatype Mismatch in SQL Server Stored procedures -
i have stored procedure called myproc1. of variable's datatype matched source table's datatype, few mismatched.
is there efficient way find mismatching variables?
right manually take description of table , compare variable datatype, time consuming task since have check around 500 plus stored procedures.
input parameters easy enough find, borrow query stack exchange answer:
select 'parameter_name' = name, 'type' = type_name(user_type_id), 'proc_name' = object_name(object_id), 'length' = max_length, 'prec' = case when type_name(system_type_id) = 'uniqueidentifier' precision else odbcprec(system_type_id, max_length, precision) end, 'scale' = odbcscale(system_type_id, scale), 'param_order' = parameter_id, 'collation' = convert(sysname, case when system_type_id in (35, 99, 167, 175, 231, 239) serverproperty('collation') end) sys.parameters however parameters declared within procedure not accessible way, find parameters need search within procedures themselves:
select object_name(id) procname, substring(text, charindex('declare @',text), 250) declaredvarables syscomments charindex('declare @',text) > 0 order object_name(id), charindex('declare @',text) which procedure name , (hopefully) relevant bits of procedure. may have dial in substring depending on coding standards, should give list of params declared within procedures.
Comments
Post a Comment