DatabaseProcApplicationCreatedLinks
sybsystemprocssp_setlockpromote  14 déc. 14Defects Propagation Dependencies

1     
2     /* Stored procedure for adding or modifying lock promotion attribute. 
3     ** Database attributes can only be modified when using Master.
4     */
5     
6     /*
7     ** Messages for "sp_setlockpromote"
8     **
9     ** 17260, "Can't run %1! from within a transaction."
10    ** 17421, "No such database -- run sp_helpdb to list databases."
11    ** 17460, "Object must be in the current database."
12    ** 18076, "Could not set curwrite to object level. Set your maxwrite label correctly."
13    ** 18090, "The target object does not exist."
14    ** 18158, "At least one of the parameters 'new_lwm', 'new_hwm' or 'new_pct' must be non-NULL to execute this procedure."
15    ** 18159, "You must be in the 'master' database to add, change or drop lock promotion attribute for a user database."
16    ** 18160, "Please specify a non-NULL value for %1, since it has not been set previously with a non-NULL value."
17    ** 18161, "Object name parameter must be NULL for Server-wide lock promotion attributes. Using NULL instead of - %1."
18    ** 18162, "'%1!' is a not a user table.  '%1' can be used only on user tables."
19    ** 18163, "The 'lock promotion LWM' value %1 cannot be greater than the 'lock promotion HWM' value %2."
20    ** 18164, "Invalid value specified for 'scope' parameter. Valid values are 'SERVER','DATABASE' or 'TABLE'."
21    ** 18165, "The 'lock promotion!' attributes of %1 '%2' have been changed. The new values are %3."
22    ** 18338, "Invalid obj_type parameter: '%1!'. Please specify 'PAGE' or 'ROW'."
23    */
24    
25    create or replace procedure sp_setlockpromote
26        @obj_type varchar(10), /* page or row */
27        @scope varchar(10), /* table, database or server */
28        @objname varchar(767) = NULL, /* table or database name */
29        @new_lwm int = NULL, /* Lock promotion lwm value */
30        @new_hwm int = NULL, /* Lock promotion hwm value */
31        @new_pct int = NULL /* Lock promotion pct value */
32    as
33    
34        declare @attrib_objid int /* object id of the table/db */
35        declare @object_type varchar(2) /* object type of the table/db */
36        declare @attrib int /* attrib type of the optname */
37        declare @use_char_value varchar(42) /* Lock promotion attribute's char_value */
38        declare @msg varchar(1024) /* message buffer */
39        declare @action int /* ADD or CHANGE attribute */
40        declare @ret int /* Return value */
41        declare @tab_type smallint /* User table ? */
42        declare @use_lwm int
43        declare @use_hwm int
44        declare @use_pct int
45        declare @update_lwm int
46        declare @update_hwm int
47        declare @nullarg char(1)
48        declare @dummy int
49        declare @status int
50        declare @gp_enabled int
51    
52    
53        select @use_lwm = NULL
54        select @use_hwm = NULL
55        select @use_pct = NULL
56    
57        /* If we're in a transaction, disallow this */
58        if @@trancount > 0
59        begin
60            /*
61            ** 17260, "Can't run %1! from within a transaction."
62            */
63            raiserror 17260, "sp_setpglockpromote"
64            return (1)
65        end
66        else
67        begin
68            set chained off
69        end
70    
71        set transaction isolation level 1
72    
73        if upper(@obj_type) not in ("PAGE", "ROW")
74        begin
75            /*
76            ** 18338, "Invalid obj_type parameter: '%1!'. Please specify 'PAGE' or 'ROW'."
77            */
78            raiserror 18338, @obj_type
79            return (1)
80        end
81    
82        if @objname like "%.%.%" and
83            substring(@objname, 1, charindex(".", @objname) - 1) != db_name()
84        begin
85            /*
86            ** 17460, "Object must be in the current database."
87            */
88            raiserror 17460
89            return (1)
90        end
91    
92        if (upper(@scope) != "DATABASE" and upper(@scope) != "SERVER"
93                and upper(@scope) != "TABLE")
94        begin
95            /*
96            ** 18164, "Invalid value specified for 'scope' parameter 
97            ** Valid values are 'SERVER','DATBASE' or 'TABLE'."
98            */
99            raiserror 18164, @objname
100           return (1)
101       end
102   
103       if (@new_lwm is NULL and @new_hwm is NULL and @new_pct is NULL)
104       begin
105           /*
106           ** 18158, "At least one of the parameters 'new_lwm', 'new_hwm' or 
107           ** 'new_pct' must be non-NULL to execute this procedure."
108           */
109           raiserror 18158
110           return 1
111       end
112   
113       if upper(@obj_type) = "PAGE"
114           select @attrib = 0
115       else
116           select @attrib = 1
117   
118   
119       if (upper(@scope) = "SERVER")
120       begin
121           if @objname is not NULL
122           begin
123               /*
124               ** 18161, "Object name parameter must be NULL for Server-wide 
125               ** lock promotion attributes. Using NULL instead of - %1."
126               */
127               raiserror 18161, @objname
128           end
129   
130           /*
131           ** For valid attributes we call sp_configure to set the server-wide
132           ** values. All 3 server-wide values cannot be set in the same tran,
133           ** since sp_configure cannot be invoked from within a tran.
134           */
135           if upper(@obj_type) = "PAGE"
136           begin
137               select @use_lwm = value from master.dbo.sysconfigures
138               where config = 253
139   
140               select @use_hwm = value from master.dbo.sysconfigures
141               where config = 144
142           end
143           else
144           begin
145               select @use_lwm = value from master.dbo.sysconfigures
146               where config = 324
147   
148               select @use_hwm = value from master.dbo.sysconfigures
149               where config = 323
150           end
151   
152           /* If the new_lwm is NULL, then we're not updating the LWM. */
153           if @new_lwm is NULL
154           begin
155               select @new_lwm = @use_lwm
156               select @update_lwm = 0
157           end
158           else
159               select @update_lwm = 1
160   
161           /* If the new_hwm is NULL, then we're not updating the HWM. */
162           if @new_hwm is NULL
163           begin
164               select @new_hwm = @use_hwm
165               select @update_hwm = 0
166           end
167           else
168               select @update_hwm = 1
169   
170           /* Validate that LWM is less than or equal to HWM. */
171           if @new_lwm > @new_hwm
172           begin
173               /*
174               ** 18163, "The 'lock promotion LWM' value %1 cannot 
175               ** be greater than the 'lock promotion HWM' value %2."
176               **
177               */
178               raiserror 18163, @new_lwm, @new_hwm
179               return 1
180           end
181   
182           /* If the the new LWM value is greater than the existing HWM,
183           ** then configure the HWM value first so that we dont break
184           ** the validation criterion.
185           */
186           if @new_lwm > @use_hwm
187           begin
188               if @update_hwm = 1
189               begin
190                   if upper(@obj_type) = "PAGE"
191                       exec @ret = sp_configure "page lock promotion HWM", @new_hwm
192                   else
193                       exec @ret = sp_configure "row lock promotion HWM", @new_hwm
194   
195                   if (@ret != 0)
196                       return @ret
197               end
198   
199               if @update_lwm = 1
200               begin
201                   if upper(@obj_type) = "PAGE"
202                       exec @ret = sp_configure "page lock promotion LWM", @new_lwm
203                   else
204                       exec @ret = sp_configure "row lock promotion LWM", @new_lwm
205   
206                   if (@ret != 0)
207                       return @ret
208               end
209           end
210           else /* @new_lwm <= @use_hwm */
211           begin
212               if @update_lwm = 1
213               begin
214                   if upper(@obj_type) = "PAGE"
215                       exec @ret = sp_configure "page lock promotion LWM", @new_lwm
216                   else
217                       exec @ret = sp_configure "row lock promotion LWM", @new_lwm
218   
219                   if (@ret != 0)
220                       return @ret
221               end
222   
223               if @update_hwm = 1
224               begin
225                   if upper(@obj_type) = "PAGE"
226                       exec @ret = sp_configure "page lock promotion HWM", @new_hwm
227                   else
228                       exec @ret = sp_configure "row lock promotion HWM", @new_hwm
229   
230                   if (@ret != 0)
231                       return @ret
232               end
233           end
234   
235           if (@new_pct is not NULL)
236           begin
237               if upper(@obj_type) = "PAGE"
238                   exec @ret = sp_configure "page lock promotion PCT", @new_pct
239               else
240                   exec @ret = sp_configure "row lock promotion PCT", @new_pct
241   
242               if (@ret != 0)
243                   return @ret
244           end
245           /* The server wide values have been successfully configured. */
246           return (0)
247       end
248       /* 
249       ** If granular permissions is not enabled then sa_role is required.
250       ** If granular permissions is enabled permission 'manage lock promotion
251       ** threshold' is required.  proc_role and proc_auditperm will also do auditing
252       ** if required. Both will also print error message if required.
253       */
254   
255       select @nullarg = NULL
256       execute @status = sp_aux_checkroleperm "sa_role",
257           "manage lock promotion threshold", @nullarg,
258           @gp_enabled output
259   
260       /* For Auditing */
261       if (@gp_enabled = 0)
262       begin
263           if (proc_role("sa_role") = 0)
264               return (1)
265       end
266       else
267       begin
268           select @dummy = proc_auditperm("manage lock promotion threshold",
269                   @status)
270       end
271   
272       if (@status != 0)
273           return (1)
274   
275       if (upper(@scope) = "DATABASE")
276       begin
277           /* 
278           ** If we're configuring lock promotion for a database, 
279           ** make sure we're currently in master. 
280           */
281   
282           select @attrib_objid = db_id()
283           if @attrib_objid != 1
284           begin
285               /*
286               ** 18159, "You must be in the 'master' database to add, change 
287               ** or drop lock promotion attribute for a user database."
288               */
289               raiserror 18159
290               return 1
291   
292           end
293   
294           /* Translate dbname to dbid. */
295           select @attrib_objid = 0
296           select @attrib_objid = dbid from master.dbo.sysdatabases
297           where name = @objname
298   
299           if @attrib_objid = 0
300           begin
301               /*
302               ** 17421, "No such database -- run sp_helpdb to list databases."
303               */
304               raiserror 17421
305               return 1
306           end
307   
308   
309           select @object_type = 'D '
310       end
311   
312       if (upper(@scope) = "TABLE")
313       begin
314           /* Translate objname to objid. */
315           select @attrib_objid = 0
316           select @attrib_objid = id, @tab_type = sysstat & 7
317           from sysobjects where id = object_id(@objname)
318   
319           if @attrib_objid = 0
320           begin
321               /* 
322               ** 18090, "The target object does not exist."
323               */
324               raiserror 18090
325               return 1
326   
327           end
328   
329           if @tab_type != 3
330           begin
331               /*
332               ** 18162, "'%1!' is a not a user table. '%2' can be 
333               ** used only on user tables."
334               */
335               raiserror 18162, @objname, "sp_setlockpromote"
336               return (1)
337           end
338   
339           select @object_type = 'T '
340       end
341   
342   
343       select @use_lwm = object_info1, @use_hwm = object_info2,
344           @use_pct = object_info3
345   
346       from sysattributes where class = 5
347           and attribute = @attrib
348           and object_type = @object_type
349           and object = @attrib_objid
350       if @@rowcount != 0
351       begin
352   
353           select @action = 2 /* ATTR_CHANGE */
354       end
355       else
356       begin
357           select @action = 1 /* ATTR_ADD */
358       end
359   
360   
361       /*
362       ** Validate that if a new attribute value is not specified, then an old one 
363       ** exists for each of LWM, HWM and PCT.
364       */
365   
366       if @new_lwm is not NULL
367           select @use_lwm = @new_lwm
368       if @use_lwm is NULL
369       begin
370           /*
371           ** 18160, "Please specify a non-NULL value for %1, 
372           ** since it has not been set previously with a non-NULL value."
373           */
374           raiserror 18160, "new_lwm"
375           return 1
376       end
377   
378       if @new_hwm is not NULL
379           select @use_hwm = @new_hwm
380       if @use_hwm is NULL
381       begin
382           /*
383           ** 18160, "Please specify a non-NULL value for %1, 
384           ** since it has not been set previously with a non-NULL value."
385           */
386           raiserror 18160, "new_hwm"
387           return 1
388       end
389   
390       if @new_pct is not NULL
391           select @use_pct = @new_pct
392       if @use_pct is NULL
393       begin
394           /*
395           ** 18160, "Please specify a non-NULL value for %1, 
396           ** since it has not been set previously with a non-NULL value."
397           */
398           raiserror 18160, "new_pct"
399           return 1
400       end
401   
402       /* Validate that LWM is less than or equal to HWM. */
403   
404       if @use_lwm > @use_hwm
405       begin
406           /*
407           ** 18163, "The 'lock promotion LWM' value %1 cannot 
408           ** be greater than the 'lock promotion HWM' value %2."
409           **
410           */
411           raiserror 18163, @use_lwm, @use_hwm
412           return 1
413       end
414   
415       /*
416       ** Assemble the char_value field for sysattributes. This is needed for
417       ** sp_help and sp_helpdb to display all 3 of LWM, HWM and PCT, even though
418       ** we use an umbrella attribute "row lock promote", or "page lock promote".
419       */
420   
421       select @use_char_value = "PCT = " + convert(varchar(3), @use_pct) +
422           ", LWM = " + convert(varchar(10), @use_lwm) +
423           ", HWM = " + convert(varchar(10), @use_hwm)
424   
425       begin transaction
426   
427       /* Validate boundary conditions for the attributes. */
428       select @ret = attrib_valid(5, @attrib, @object_type,
429               @attrib_objid, @use_lwm, @use_hwm, @use_pct, NULL,
430               NULL, NULL, NULL, NULL, NULL, @action)
431   
432       if @ret = 0 /* Validation routine returned false. */
433       begin
434           rollback tran
435           return (1)
436       end
437   
438       if (@action = 2) /* ATTR_CHANGE */
439       begin
440           update sysattributes
441           set char_value = @use_char_value,
442               object_info1 = @use_lwm,
443               object_info2 = @use_hwm,
444               object_info3 = @use_pct
445           where class = 5
446               and attribute = @attrib
447               and object_type = @object_type
448               and object = @attrib_objid
449   
450           /*
451           ** If there was an error, @@error will be non-zero
452           */
453           if @@error != 0
454           begin
455               if @@trancount != 0
456                   rollback transaction
457               return (1)
458           end
459       end
460       else /* ADD attribute */
461       begin
462   
463           insert into sysattributes(class, attribute, object_type, object,
464               object_info1, object_info2,
465               object_info3, char_value)
466           values (5, @attrib, @object_type, @attrib_objid,
467               @new_lwm, @new_hwm, @new_pct,
468               @use_char_value)
469   
470           /*
471           ** If there was an error, @@error will be non-zero
472           */
473           if @@error != 0
474           begin
475               if @@trancount != 0
476                   rollback transaction
477               return (1)
478           end
479       end
480   
481   
482       /* Notify */
483       select @ret = attrib_notify(5, @attrib, @object_type,
484               @attrib_objid, @use_lwm, @use_hwm, @use_pct, NULL,
485               NULL, NULL, NULL, NULL, NULL, @action)
486   
487       if @ret = 0 /* Unable to notify ? */
488       begin
489           rollback tran
490           return (1)
491       end
492   
493       commit transaction
494   
495       /*
496       ** 18165, "The %4! lock promotion attributes of %1, '%2' 
497       ** have been changed. The new values are %3."
498       */
499       exec sp_getmessage 18165, @msg output
500       print @msg, @scope, @objname, @use_char_value, @obj_type
501   
502       return (0)
503   


exec sp_procxmode 'sp_setlockpromote', 'AnyMode'
go

Grant Execute on sp_setlockpromote to public
go
DEFECTS
 MINU 4 Unique Index with nullable columns master..sysconfigures master..sysconfigures
 MINU 4 Unique Index with nullable columns sybsystemprocs..sysattributes sybsystemprocs..sysattributes
 MTYP 4 Assignment type mismatch attribute: smallint = int 466
 QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int 138
 QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int 141
 QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int 146
 QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int 149
 QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int 346
 QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int 347
 QTYP 4 Comparison type mismatch smallint = int 347
 QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int 445
 QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int 446
 QTYP 4 Comparison type mismatch smallint = int 446
 MAW1 3 Warning message on %name% sybsystemprocs..sysobjects.id: Warning message on sysobjects 316
 MAW1 3 Warning message on %name% sybsystemprocs..sysobjects.id: Warning message on sysobjects 317
 MGTP 3 Grant to public master..sysconfigures  
 MGTP 3 Grant to public master..sysdatabases  
 MGTP 3 Grant to public sybsystemprocs..sp_setlockpromote  
 MGTP 3 Grant to public sybsystemprocs..sysattributes  
 MGTP 3 Grant to public sybsystemprocs..sysobjects  
 MNER 3 No Error Check should check return value of exec 191
 MNER 3 No Error Check should check return value of exec 202
 MNER 3 No Error Check should check return value of exec 215
 MNER 3 No Error Check should check return value of exec 226
 MNER 3 No Error Check should check return value of exec 238
 MNER 3 No Error Check should check return value of exec 499
 MUCO 3 Useless Code Useless Brackets 64
 MUCO 3 Useless Code Useless Brackets 79
 MUCO 3 Useless Code Useless Brackets 89
 MUCO 3 Useless Code Useless Brackets 92
 MUCO 3 Useless Code Useless Brackets 100
 MUCO 3 Useless Code Useless Brackets 103
 MUCO 3 Useless Code Useless Brackets 119
 MUCO 3 Useless Code Useless Brackets 195
 MUCO 3 Useless Code Useless Brackets 206
 MUCO 3 Useless Code Useless Brackets 219
 MUCO 3 Useless Code Useless Brackets 230
 MUCO 3 Useless Code Useless Brackets 235
 MUCO 3 Useless Code Useless Brackets 242
 MUCO 3 Useless Code Useless Brackets 246
 MUCO 3 Useless Code Useless Brackets 261
 MUCO 3 Useless Code Useless Brackets 263
 MUCO 3 Useless Code Useless Brackets 264
 MUCO 3 Useless Code Useless Brackets 272
 MUCO 3 Useless Code Useless Brackets 273
 MUCO 3 Useless Code Useless Brackets 275
 MUCO 3 Useless Code Useless Brackets 312
 MUCO 3 Useless Code Useless Brackets 336
 MUCO 3 Useless Code Useless Brackets 435
 MUCO 3 Useless Code Useless Brackets 438
 MUCO 3 Useless Code Useless Brackets 457
 MUCO 3 Useless Code Useless Brackets 477
 MUCO 3 Useless Code Useless Brackets 490
 MUCO 3 Useless Code Useless Brackets 502
 MUPK 3 Update column which is part of a PK or unique index object_info1 441
 QAFM 3 Var Assignment from potentially many rows 137
 QAFM 3 Var Assignment from potentially many rows 140
 QAFM 3 Var Assignment from potentially many rows 145
 QAFM 3 Var Assignment from potentially many rows 148
 QAFM 3 Var Assignment from potentially many rows 343
 QISO 3 Set isolation level 71
 QIWC 3 Insert with not all columns specified missing 7 columns out of 15 463
 QPRI 3 Join or Sarg with Rooted Partial Index Use SARG Candidate index: sysattributes.csysattributes unique clustered
(class, attribute, object_type, object, object_info1, object_info2, object_info3, object_cinfo)
Intersection: {object_type, object, attribute, class}
346
 QPRI 3 Join or Sarg with Rooted Partial Index Use SARG Candidate index: sysattributes.csysattributes unique clustered
(class, attribute, object_type, object, object_info1, object_info2, object_info3, object_cinfo)
Intersection: {object_type, object, attribute, class}
445
 VNRD 3 Variable is not read @dummy 268
 MTR1 2 Metrics: Comments Ratio Comments: 42% 25
 MTR2 2 Metrics: Cyclomatic Complexity Cyclo: 37 = 61dec - 26exi + 2 25
 MTR3 2 Metrics: Query Complexity Complexity: 248 25

DATA PROPAGATION detailed
ColumnWritten To
@new_hwmsysattributes.object_info2   °.char_value   sysattributes.object_info2   °.int_value   °.char_value   sp_dropdevice_rset_001.device sp_dropdevice_rset_001.device sp_forceonline_object_rset_001.Index °.status sp_forceonline_object_rset_002.Index
°.status sp_forceonline_page_rset_001.status sp_forceonline_page_rset_002.status sp_listsuspect_object_rset_001.Index °.Access sp_listsuspect_page_rset_001.Index °.Access sp_makesuspect_obj_rset_001.Indid °.LogType °.PageType
°.ErrType °.Delay °.TotalNum sp_makesuspect_obj_rset_002.Indid °.LogType °.PageType °.ErrType °.Delay °.TotalNum sp_makesuspect_obj_rset_003.Indid
°.LogType °.PageType °.ErrType °.Delay °.TotalNum sp_passwordpolicy_rset_001.message sp_passwordpolicy_rset_002.value sp_passwordpolicy_rset_003.value sp_passwordpolicy_rset_004.Policy_option sp_rjs_retrieve_rset_001.host_name
sp_setsuspect_granularity_rset_001.Online mode sp_setsuspect_threshold_rset_001.Cfg. Suspect threshold sp_setsuspect_threshold_rset_002.Cfg. Suspect Threshold sp_ssladmin_rset_001.certificate_path sp_ssladmin_rset_002.Cipher Suite Name °.Preference
@new_lwmsysattributes.object_info1   °.char_value   sysattributes.object_info1   °.int_value   °.char_value   sp_dropdevice_rset_001.device sp_displayroles_rset_001.Role Name sp_displayroles_rset_002.Role Name sp_displayroles_rset_003.Role Name sp_displayroles_rset_004.Role Name
sp_dropdevice_rset_001.device sp_forceonline_object_rset_001.Object °.status sp_forceonline_object_rset_002.Object °.status sp_forceonline_page_rset_001.status sp_forceonline_page_rset_002.status sp_listsuspect_object_rset_001.Object °.Access sp_listsuspect_page_rset_001.Object
°.Access sp_makesuspect_obj_rset_001.Obj °.Indid °.LogType °.PageType °.ErrType °.Delay °.TotalNum sp_makesuspect_obj_rset_002.Obj °.Indid
°.LogType °.PageType °.ErrType °.Delay °.TotalNum sp_makesuspect_obj_rset_003.Obj °.Indid °.LogType °.PageType °.ErrType
°.Delay °.TotalNum sp_memlog_rset_001.dumps_per_file sp_passwordpolicy_rset_001.message sp_passwordpolicy_rset_002.value sp_passwordpolicy_rset_003.value sp_passwordpolicy_rset_004.Policy_option sp_rjs_retrieve_rset_001.host_name sp_setsuspect_granularity_rset_001.Online mode sp_ssladmin_rset_001.certificate_path
sp_ssladmin_rset_002.Cipher Suite Name °.Preference
@new_pctsysattributes.object_info3   °.char_value   sysattributes.object_info3   °.int_value   °.char_value   sp_dropdevice_rset_001.device sp_dropdevice_rset_001.device sp_forceonline_object_rset_001.status sp_forceonline_object_rset_002.status sp_forceonline_page_rset_001.status
sp_forceonline_page_rset_002.status sp_listsuspect_object_rset_001.Access sp_listsuspect_page_rset_001.Access sp_makesuspect_obj_rset_001.Indid °.LogType °.PageType °.ErrType °.Delay °.TotalNum sp_makesuspect_obj_rset_002.Indid
°.LogType °.PageType °.ErrType °.Delay °.TotalNum sp_makesuspect_obj_rset_003.Indid °.LogType °.PageType °.ErrType °.Delay
°.TotalNum sp_passwordpolicy_rset_001.message sp_passwordpolicy_rset_002.value sp_passwordpolicy_rset_003.value sp_passwordpolicy_rset_004.Policy_option sp_rjs_retrieve_rset_001.host_name sp_setsuspect_granularity_rset_001.Online mode sp_ssladmin_rset_001.certificate_path sp_ssladmin_rset_002.Cipher Suite Name °.Preference

DEPENDENCIES
PROCS AND TABLES USED
calls proc sybsystemprocs..sp_getmessage  
   reads table master..syslanguages (1)  
   calls proc sybsystemprocs..sp_validlang  
      reads table master..syslanguages (1)  
   reads table master..sysmessages (1)  
   reads table sybsystemprocs..sysusermessages  
read_writes table sybsystemprocs..sysattributes  
reads table master..sysconfigures (1)  
calls proc sybsystemprocs..sp_configure  
   reads table master..syscharsets (1)  
   read_writes table tempdb..#configure_temp (1) 
   reads table master..sysdevices (1)  
   writes table sybsystemprocs..sp_configure_rset_004 
   reads table master..syslanguages (1)  
   calls proc sybsystemprocs..sp_configure  
   reads table master..sysattributes (1)  
   writes table tempdb..#temptab (1) 
   reads table master..spt_values (1)  
   calls proc sybsystemprocs..sp_autoformat  
      writes table sybsystemprocs..sp_autoformat_rset_003 
      reads table tempdb..syscolumns (1)  
      read_writes table tempdb..#colinfo_af (1) 
      writes table sybsystemprocs..sp_autoformat_rset_001 
      reads table tempdb..systypes (1)  
      reads table master..systypes (1)  
      writes table sybsystemprocs..sp_autoformat_rset_005 
      calls proc sybsystemprocs..sp_autoformat  
      calls proc sybsystemprocs..sp_namecrack  
      writes table sybsystemprocs..sp_autoformat_rset_004 
      reads table master..syscolumns (1)  
      writes table sybsystemprocs..sp_autoformat_rset_002 
   writes table sybsystemprocs..sp_configure_rset_005 
   read_writes table tempdb..#optlevel (1) 
   writes table tempdb..#temptable3 (1) 
   reads table master..sysconfigures (1)  
   calls proc sybsystemprocs..sp_aux_checkroleperm  
      reads table master..syscurconfigs (1)  
      reads table master..sysconfigures (1)  
   writes table tempdb..#temptable (1) 
   writes table sybsystemprocs..sp_configure_rset_006 
   writes table sybsystemprocs..sp_configure_rset_001 
   writes table tempdb..#temptable1 (1) 
   calls proc sybsystemprocs..sp_getmessage  
   writes table sybsystemprocs..sp_configure_rset_002 
   calls proc sybsystemprocs..sp_aux_getsize  
   reads table master..syscurconfigs (1)  
   writes table sybsystemprocs..sp_configure_rset_003 
reads table sybsystemprocs..sysobjects  
reads table master..sysdatabases (1)  
calls proc sybsystemprocs..sp_aux_checkroleperm  

CALLERS
called by proc sybsystemprocs..sp_setrowlockpromote  
called by proc sybsystemprocs..sp_setpglockpromote