Database | Proc | Application | Created | Links |
sybsystemprocs | sp_bindexeclass | 31 Aug 14 | Defects Dependencies |
1 2 /* Sccsid = "%Z% generic/sproc/%M% %I% %G% */ 3 4 /* 5 ** Messages for "sp_bindexeclass" 6 ** 17260, "Can't run %1! from within a transaction." 7 ** 18255, "%1! cannot be NULL." 8 ** 18256, "%1! is not a valid object type for this stored procedure." 9 ** 18257, "No definition for classname '%1!' exists." 10 ** 18259, "No login with the specified name '%1!' exists." 11 ** 18260, "Validation of execution class binding failed. Check server 12 ** errorlog for any additional information." 13 ** 18261, "Failed to bind '%1!' to execution class '%2!'. Check server 14 ** errorlog for any additional information." 15 ** 18535, "Permission denied: 'sybase_ts_role' is required for binding 16 ** with execution class 'EC0'. 17 ** 18551, "Stored procedure %1!, owned by %2!, does not exist in this database. 18 ** 18552, "%1! is not a valid user of this database. 19 ** 18291, "The parameter value '%1!' is invalid." 20 */ 21 22 create procedure sp_bindexeclass 23 @object_name varchar(255), /* name of object */ 24 @object_type varchar(2), /* Type of object */ 25 @scope varchar(30), /* user scope of binding */ 26 @classname varchar(255) /* class name assigned */ 27 as 28 29 declare @attrib_id int, 30 @user_id int, 31 @action int, 32 @role int, 33 @sp_objid int, 34 @owner_id int, 35 @upcase_str varchar(255), 36 @instanceid int 37 38 select @action = 1 39 select @user_id = NULL /* Id of user from Syslogins table */ 40 41 /* 42 ** IF we're in a transaction, disallow this since it might make recovery 43 ** impossible. 44 */ 45 IF @@trancount > 0 46 BEGIN 47 /* 48 ** 17260, "Can't run %1! from within a transaction." 49 */ 50 raiserror 17260, "sp_bindexeclass" 51 return (1) 52 END 53 ELSE 54 BEGIN 55 /* Use TSQL mode of unchained transactions */ 56 set chained off 57 END 58 59 /* Dont do "Dirty Reads" */ 60 set transaction isolation level 1 61 62 /* convert to upper case, system supported types and names */ 63 select @upcase_str = upper(@classname) 64 IF ((@upcase_str = "EC0") OR (@upcase_str = "EC1") OR 65 (@upcase_str = "EC2") OR (@upcase_str = "EC3")) 66 select @classname = @upcase_str 67 68 select @upcase_str = upper(@object_type) 69 IF ((@upcase_str = "LG") OR (@upcase_str = "AP") OR 70 (@upcase_str = "PR") OR (@upcase_str = "DF") OR 71 (@upcase_str = "SV")) 72 select @object_type = @upcase_str 73 74 /* 75 ** Check to see that the input params are correct 76 */ 77 IF ((@object_name is NULL) AND (@object_type != 'DF')) 78 BEGIN 79 /* 80 ** 18255, "%1! cannot be NULL." 81 */ 82 raiserror 18255, "Object name" 83 return (1) 84 END 85 86 IF ((@object_type = 'PR') AND (@scope is NULL)) 87 BEGIN 88 /* 89 ** 18255, "%1! cannot be NULL." 90 */ 91 raiserror 18255, "Scope" 92 return (1) 93 END 94 95 /* For object_type SV, scope should be NULL */ 96 IF ((@object_type = 'SV') AND (@scope is not NULL)) 97 BEGIN 98 /* 99 ** 18291, "The parameter value '%1!' is invalid." 100 */ 101 raiserror 18291, "scope" 102 return (1) 103 END 104 105 /* object_type SV is only usable in threaded mode */ 106 IF ((@object_type = 'SV') AND (@@kernelmode != 'threaded')) 107 BEGIN 108 /* 109 ** 18119, "'%1!' is not available in process mode." 110 */ 111 raiserror 18119, "Service task binding" 112 return (1) 113 END 114 115 /* For object_type DF the object name and scope should be NULL */ 116 IF ((@object_type = 'DF') AND ((@object_name is not NULL) 117 OR (@scope is not NULL))) 118 BEGIN 119 /* 120 ** 18291, "The parameter value '%1!' is invalid." 121 */ 122 raiserror 18291, "Object name or scope" 123 return (1) 124 END 125 126 127 /* check that @object_type value specified is valid */ 128 IF ((@object_type != 'LG') and (@object_type != 'AP') 129 and (@object_type != 'PR') and (@object_type != 'DF') 130 and (@object_type != 'SV')) 131 BEGIN 132 /* 133 ** 18256, "%1! is not a valid object type for this stored procedure." 134 */ 135 raiserror 18256, @object_type 136 return (1) 137 END 138 139 /* in case of stored procs, check that the object exists */ 140 IF (@object_type = "PR") 141 BEGIN 142 /* get owner id from scope param */ 143 IF not exists (select uid from sysusers 144 where (name = @scope)) 145 BEGIN 146 /* 147 ** 18552 "%1! is not a valid user of this database." 148 */ 149 raiserror 18552, @scope 150 return (1) 151 END 152 ELSE 153 select @owner_id = (select uid from sysusers 154 where (name = @scope)) 155 156 IF not exists (select id from sysobjects 157 where ((name = @object_name) AND (uid = @owner_id))) 158 BEGIN 159 /* 160 ** 18551 "Stored procedure %1!, owned by %2!, does not exist 161 ** in this database. 162 */ 163 raiserror 18551, @object_name, @scope 164 return (1) 165 END 166 ELSE 167 select @sp_objid = (select id from sysobjects 168 where ((name = @object_name) AND (uid = @owner_id))) 169 END 170 171 select @attrib_id = 2 /* attribute is class definition */ 172 173 /* check the class name passed in */ 174 IF ((@classname != "EC0") 175 AND (@classname != "EC1") 176 AND (@classname != "EC2") 177 AND (@classname != "EC3")) 178 BEGIN 179 IF not exists (select object_cinfo from master..sysattributes 180 where class = 6 AND 181 attribute = @attrib_id AND 182 object_type = 'UC' AND 183 object_cinfo = @classname) 184 BEGIN 185 /* 186 ** 18257, "No definition for classname '%1!' exists." 187 */ 188 raiserror 18257, @classname 189 return (1) 190 END 191 192 193 /* 194 ** For SDC, binding only to local execution class 195 */ 196 IF (@@clustermode = "shared disk cluster") 197 BEGIN 198 select @instanceid = object_info3 from master..sysattributes 199 where class = 6 AND 200 attribute = @attrib_id AND 201 object_type = 'UC' AND 202 object_cinfo = @classname 203 204 if ((@instanceid != NULL) AND 205 (@instanceid != @@instanceid)) 206 BEGIN 207 /* 208 ** RESOLVE: change error to new message: 209 ** "Class '%1!' is bound to instance '%2!'." 210 */ 211 /* raiserror 17260, "sp_bindexeclass" */ 212 raiserror 19659, @classname, @instanceid 213 return (1) 214 END 215 END 216 END 217 218 /* check that for class EC0, caller has sybase_ts_role. */ 219 IF (@classname = "EC0") 220 BEGIN 221 select @role = proc_role("sybase_ts_role") 222 IF (@role = 0) 223 BEGIN 224 /* 225 ** 18535, "Permission denied: 'sybase_ts_role' is required 226 ** for binding with execution class EC0" 227 */ 228 raiserror 18535 229 return (1) 230 END 231 END 232 233 /* Now convert user name to user id after checking its existence */ 234 IF (@object_type = "LG") 235 BEGIN 236 IF not exists (select suid from master..syslogins 237 where (name = @object_name) and 238 ((status & 512) != 512)) /* not LOGIN PROFILE */ 239 BEGIN 240 /* 241 ** 17231, "No login with the specified name '%1!' exists" 242 */ 243 raiserror 17231, @object_name 244 return (1) 245 END 246 247 select @user_id = (select suid from master..syslogins 248 where (name = @object_name) and 249 ((status & 512) != 512)) /* not LOGIN PROFILE */ 250 END 251 ELSE IF ((@object_type = "AP") and (@scope is not NULL)) 252 BEGIN 253 IF not exists (select suid from master..syslogins where (name = @scope) and 254 ((status & 512) != 512)) /* not LOGIN PROFILE */ 255 BEGIN 256 /* 257 ** 18259, "No login with specified name '%1!' exists" 258 */ 259 raiserror 18259, @scope 260 return (1) 261 END 262 263 select @user_id = (select suid from master..syslogins 264 where (name = @scope) and 265 ((status & 512) != 512)) /* not LOGIN PROFILE */ 266 END 267 268 /* 269 ** Now hook up with Sysattributes Table.. 270 ** Verify that the attributes passed to sysattributes is correct. 271 ** Note that for stored procedures, the sysattributes table in the current 272 ** database is used. For other objects, the sysattributes table in master 273 ** is used. 274 */ 275 276 select @attrib_id = 0 277 278 IF (@object_type = "LG") 279 BEGIN 280 IF attrib_valid(6, @attrib_id, @object_type, @user_id, NULL, NULL, 281 NULL, @scope, NULL, @classname, NULL, NULL, "", @action) = 0 282 BEGIN 283 /* 284 ** 18260, "Validation of execution class binding failed. 285 ** Check server errorlog for any additional 286 ** information." 287 */ 288 raiserror 18260 289 return (1) 290 END 291 ELSE 292 BEGIN 293 IF exists (select * from master..sysattributes where 294 class = 6 AND 295 attribute = @attrib_id AND 296 object_type = @object_type AND 297 object = @user_id AND 298 object_cinfo = @scope) 299 BEGIN 300 update master..sysattributes 301 set char_value = @classname 302 where class = 6 AND 303 attribute = @attrib_id AND 304 object_type = @object_type AND 305 object = @user_id AND 306 object_cinfo = @scope 307 END 308 ELSE 309 BEGIN 310 insert master..sysattributes 311 (class, attribute, object_type, object, 312 object_cinfo, char_value) 313 values (6, @attrib_id, @object_type, @user_id, 314 @scope, @classname) 315 END 316 317 IF attrib_notify(6, @attrib_id, @object_type, @user_id, 318 NULL, NULL, NULL, @scope, NULL, @classname, 319 NULL, NULL, "", @action) = 0 320 BEGIN 321 /* 322 ** 18261, "Failed to bind '%1!' to execution class 323 ** '%2!'. Check server errorlog for any 324 ** additional information." 325 */ 326 delete master..sysattributes where (class = 6 AND 327 attribute = @attrib_id AND 328 object_type = @object_type AND 329 object = @user_id AND 330 object_cinfo = @scope) 331 raiserror 18261, @object_name, @classname 332 return (1) 333 END 334 END 335 END 336 ELSE IF (@object_type = "AP") 337 BEGIN 338 IF attrib_valid(6, @attrib_id, @object_type, NULL, @user_id, NULL, 339 NULL, @object_name, NULL, @classname, NULL, NULL, "", 340 @action) = 0 341 BEGIN 342 /* 343 ** 18260, "Validation of execution class binding failed. 344 ** Check server errorlog for any additional 345 ** information." 346 */ 347 raiserror 18260 348 return (1) 349 END 350 ELSE 351 BEGIN 352 IF exists (select * from master..sysattributes where 353 class = 6 AND 354 attribute = @attrib_id AND 355 object_type = @object_type AND 356 object_info1 = @user_id AND 357 object_cinfo = @object_name) 358 BEGIN 359 update master..sysattributes 360 set char_value = @classname 361 where class = 6 AND 362 attribute = @attrib_id AND 363 object_type = @object_type AND 364 object_info1 = @user_id AND 365 object_cinfo = @object_name 366 END 367 ELSE 368 BEGIN 369 insert master..sysattributes 370 (class, attribute, object_type, object_info1, 371 object_cinfo, char_value) 372 values (6, @attrib_id, @object_type, @user_id, 373 @object_name, @classname) 374 END 375 376 IF attrib_notify(6, @attrib_id, @object_type, NULL, 377 @user_id, NULL, NULL, @object_name, NULL, @classname, 378 NULL, NULL, "", @action) = 0 379 BEGIN 380 /* 381 ** 18261, "Error on binding '%1!' to execution class 382 ** '%2!'. Check server errorlog for any 383 ** additional information." 384 */ 385 delete master..sysattributes where (class = 6 AND 386 attribute = @attrib_id AND 387 object_type = @object_type AND 388 object_info1 = @user_id AND 389 object_cinfo = @object_name) 390 raiserror 18261, @object_name, @classname 391 return (1) 392 END 393 END 394 END 395 ELSE IF (@object_type = "DF") 396 BEGIN 397 IF attrib_valid(6, @attrib_id, @object_type, NULL, NULL, NULL, 398 NULL, NULL, NULL, @classname, NULL, NULL, "", 399 @action) = 0 400 401 BEGIN 402 /* 403 ** 18260, "Validation of execution class binding failed. 404 ** Check server errorlog for any additional 405 ** information." 406 */ 407 raiserror 18260 408 return (1) 409 END 410 ELSE 411 BEGIN 412 IF exists (select * from master..sysattributes where 413 class = 6 AND 414 attribute = @attrib_id AND 415 object_type = @object_type) 416 BEGIN 417 update master..sysattributes 418 set char_value = @classname 419 where class = 6 AND 420 attribute = @attrib_id AND 421 object_type = @object_type 422 END 423 ELSE 424 BEGIN 425 insert master..sysattributes 426 (class, attribute, object_type, char_value) 427 values (6, @attrib_id, @object_type, @classname) 428 END 429 430 IF attrib_notify(6, @attrib_id, @object_type, NULL, NULL, NULL, 431 NULL, NULL, NULL, @classname, NULL, NULL, "", 432 @action) = 0 433 BEGIN 434 /* 435 ** 18261, "Error on binding '%1!' to execution class 436 ** '%2!'. Check server errorlog for any 437 ** additional information." 438 */ 439 delete master..sysattributes where (class = 6 AND 440 attribute = @attrib_id AND 441 object_type = @object_type AND 442 char_value = @classname) 443 raiserror 18261, @object_name, @classname 444 return (1) 445 END 446 END 447 END 448 ELSE IF (@object_type = "PR") 449 BEGIN 450 /* For stored procs, we store the owner id and object id of the sp in 451 ** sysattributes. 452 */ 453 IF attrib_valid(6, @attrib_id, @object_type, @sp_objid, @owner_id, 454 NULL, NULL, @object_name, NULL, @classname, NULL, NULL, "", 455 @action) = 0 456 BEGIN 457 /* 458 ** 18260, "Validation of execution class binding failed. 459 ** Check server errorlog for any additional 460 ** information." 461 */ 462 raiserror 18260 463 return (1) 464 END 465 ELSE 466 BEGIN 467 IF exists (select * from sysattributes where 468 class = 6 AND 469 attribute = @attrib_id AND 470 object_type = @object_type AND 471 object = @sp_objid AND 472 object_info1 = @owner_id AND 473 object_cinfo = @object_name) 474 BEGIN 475 update sysattributes 476 set char_value = @classname 477 where class = 6 AND 478 attribute = @attrib_id AND 479 object_type = @object_type AND 480 object = @sp_objid AND 481 object_info1 = @owner_id AND 482 object_cinfo = @object_name 483 END 484 ELSE 485 BEGIN 486 insert sysattributes 487 (class, attribute, object_type, object, 488 object_info1, object_cinfo, char_value) 489 values (6, @attrib_id, @object_type, @sp_objid, 490 @owner_id, @object_name, @classname) 491 END 492 IF attrib_notify(6, @attrib_id, @object_type, @sp_objid, 493 NULL, NULL, NULL, @object_name, NULL, @classname, 494 NULL, NULL, "", @action) = 0 495 BEGIN 496 /* 497 ** 18261, "Failed to bind '%1!' to execution class 498 ** '%2!'. Check server errorlog for any 499 ** additional information." 500 */ 501 delete sysattributes where (class = 6 AND 502 attribute = @attrib_id AND 503 object_type = @object_type AND 504 object = @sp_objid AND 505 object_info1 = @owner_id AND 506 object_cinfo = @object_name) 507 raiserror 18261, @object_name, @classname 508 return (1) 509 END 510 END 511 END 512 ELSE /* object is of type "SV" */ 513 BEGIN 514 /* 515 ** Verify if object_name and other parameters passed are valid 516 */ 517 IF attrib_valid(6, @attrib_id, @object_type, NULL, NULL, 518 NULL, NULL, @object_name, NULL, @classname, NULL, NULL, "", 519 @action) = 0 520 BEGIN 521 /* 522 ** 18260, "Validation of execution class binding failed. 523 ** Check server errorlog for any additional information. 524 */ 525 raiserror 18260 526 return (1) 527 END 528 ELSE 529 BEGIN 530 IF exists (select * from master..sysattributes where 531 class = 6 AND 532 attribute = @attrib_id AND 533 object_type = @object_type AND 534 object_cinfo = @object_name) 535 BEGIN 536 update master..sysattributes 537 set char_value = @classname 538 where class = 6 AND 539 attribute = @attrib_id AND 540 object_type = @object_type AND 541 object_cinfo = @object_name 542 END 543 ELSE 544 BEGIN 545 insert master..sysattributes 546 (class, attribute, object_type, 547 object_cinfo, char_value) 548 values (6, @attrib_id, @object_type, 549 @object_name, @classname) 550 END 551 552 IF attrib_notify(6, @attrib_id, @object_type, NULL, 553 NULL, NULL, NULL, @object_name, NULL, @classname, 554 NULL, NULL, "", @action) = 0 555 BEGIN 556 /* 557 ** 18261, "Failed to bind '%1!' to execution class 558 ** '%2!'. Check server errorlog for any 559 ** additional information." 560 */ 561 delete sysattributes where (class = 6 AND 562 attribute = @attrib_id AND 563 object_type = @object_type AND 564 char_value = @classname AND 565 object_cinfo = @object_name) 566 raiserror 18261, @object_name, @classname 567 return (1) 568 END 569 END 570 END 571 572 return (0) 573
DEFECTS | |
MEST 4 Empty String will be replaced by Single Space | 281 |
MEST 4 Empty String will be replaced by Single Space | 319 |
MEST 4 Empty String will be replaced by Single Space | 339 |
MEST 4 Empty String will be replaced by Single Space | 378 |
MEST 4 Empty String will be replaced by Single Space | 398 |
MEST 4 Empty String will be replaced by Single Space | 431 |
MEST 4 Empty String will be replaced by Single Space | 454 |
MEST 4 Empty String will be replaced by Single Space | 494 |
MEST 4 Empty String will be replaced by Single Space | 518 |
MEST 4 Empty String will be replaced by Single Space | 554 |
MINU 4 Unique Index with nullable columns master..sysattributes | master..sysattributes |
MINU 4 Unique Index with nullable columns sybsystemprocs..sysattributes | sybsystemprocs..sysattributes |
MTYP 4 Assignment type mismatch @object_type: varchar(2) = varchar(255) | 72 |
MTYP 4 Assignment type mismatch attribute: smallint = int | 313 |
MTYP 4 Assignment type mismatch attribute: smallint = int | 372 |
MTYP 4 Assignment type mismatch attribute: smallint = int | 427 |
MTYP 4 Assignment type mismatch attribute: smallint = int | 489 |
MTYP 4 Assignment type mismatch attribute: smallint = int | 548 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 180 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 181 |
QTYP 4 Comparison type mismatch smallint = int | 181 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 199 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 200 |
QTYP 4 Comparison type mismatch smallint = int | 200 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 294 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 295 |
QTYP 4 Comparison type mismatch smallint = int | 295 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 302 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 303 |
QTYP 4 Comparison type mismatch smallint = int | 303 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 326 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 327 |
QTYP 4 Comparison type mismatch smallint = int | 327 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 353 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 354 |
QTYP 4 Comparison type mismatch smallint = int | 354 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 361 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 362 |
QTYP 4 Comparison type mismatch smallint = int | 362 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 385 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 386 |
QTYP 4 Comparison type mismatch smallint = int | 386 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 413 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 414 |
QTYP 4 Comparison type mismatch smallint = int | 414 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 419 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 420 |
QTYP 4 Comparison type mismatch smallint = int | 420 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 439 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 440 |
QTYP 4 Comparison type mismatch smallint = int | 440 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 468 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 469 |
QTYP 4 Comparison type mismatch smallint = int | 469 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 477 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 478 |
QTYP 4 Comparison type mismatch smallint = int | 478 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 501 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 502 |
QTYP 4 Comparison type mismatch smallint = int | 502 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 531 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 532 |
QTYP 4 Comparison type mismatch smallint = int | 532 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 538 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 539 |
QTYP 4 Comparison type mismatch smallint = int | 539 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 561 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int | 562 |
QTYP 4 Comparison type mismatch smallint = int | 562 |
MGTP 3 Grant to public master..sysattributes | |
MGTP 3 Grant to public master..syslogins | |
MGTP 3 Grant to public sybsystemprocs..sysattributes | |
MGTP 3 Grant to public sybsystemprocs..sysobjects | |
MGTP 3 Grant to public sybsystemprocs..sysusers | |
MNAC 3 Not using ANSI 'is null' | 204 |
MNER 3 No Error Check should check @@error after update | 300 |
MNER 3 No Error Check should check @@error after insert | 310 |
MNER 3 No Error Check should check @@error after delete | 326 |
MNER 3 No Error Check should check @@error after update | 359 |
MNER 3 No Error Check should check @@error after insert | 369 |
MNER 3 No Error Check should check @@error after delete | 385 |
MNER 3 No Error Check should check @@error after update | 417 |
MNER 3 No Error Check should check @@error after insert | 425 |
MNER 3 No Error Check should check @@error after delete | 439 |
MNER 3 No Error Check should check @@error after update | 475 |
MNER 3 No Error Check should check @@error after insert | 486 |
MNER 3 No Error Check should check @@error after delete | 501 |
MNER 3 No Error Check should check @@error after update | 536 |
MNER 3 No Error Check should check @@error after insert | 545 |
MNER 3 No Error Check should check @@error after delete | 561 |
MUCO 3 Useless Code Useless Brackets | 51 |
MUCO 3 Useless Code Useless Brackets | 64 |
MUCO 3 Useless Code Useless Brackets | 69 |
MUCO 3 Useless Code Useless Brackets | 77 |
MUCO 3 Useless Code Useless Brackets | 83 |
MUCO 3 Useless Code Useless Brackets | 86 |
MUCO 3 Useless Code Useless Brackets | 92 |
MUCO 3 Useless Code Useless Brackets | 96 |
MUCO 3 Useless Code Useless Brackets | 102 |
MUCO 3 Useless Code Useless Brackets | 106 |
MUCO 3 Useless Code Useless Brackets | 112 |
MUCO 3 Useless Code Useless Brackets | 116 |
MUCO 3 Useless Code Useless Brackets | 123 |
MUCO 3 Useless Code Useless Brackets | 128 |
MUCO 3 Useless Code Useless Brackets | 136 |
MUCO 3 Useless Code Useless Brackets | 140 |
MUCO 3 Useless Code Useless Brackets | 144 |
MUCO 3 Useless Code Useless Brackets | 150 |
MUCO 3 Useless Code Useless Brackets | 154 |
MUCO 3 Useless Code Useless Brackets | 157 |
MUCO 3 Useless Code Useless Brackets | 164 |
MUCO 3 Useless Code Useless Brackets | 168 |
MUCO 3 Useless Code Useless Brackets | 174 |
MUCO 3 Useless Code Useless Brackets | 189 |
MUCO 3 Useless Code Useless Brackets | 196 |
MUCO 3 Useless Code Useless Brackets | 204 |
MUCO 3 Useless Code Useless Brackets | 213 |
MUCO 3 Useless Code Useless Brackets | 219 |
MUCO 3 Useless Code Useless Brackets | 222 |
MUCO 3 Useless Code Useless Brackets | 229 |
MUCO 3 Useless Code Useless Brackets | 234 |
MUCO 3 Useless Code Useless Brackets | 244 |
MUCO 3 Useless Code Useless Brackets | 251 |
MUCO 3 Useless Code Useless Brackets | 260 |
MUCO 3 Useless Code Useless Brackets | 278 |
MUCO 3 Useless Code Useless Brackets | 289 |
MUCO 3 Useless Code Useless Brackets | 326 |
MUCO 3 Useless Code Useless Brackets | 332 |
MUCO 3 Useless Code Useless Brackets | 336 |
MUCO 3 Useless Code Useless Brackets | 348 |
MUCO 3 Useless Code Useless Brackets | 385 |
MUCO 3 Useless Code Useless Brackets | 391 |
MUCO 3 Useless Code Useless Brackets | 395 |
MUCO 3 Useless Code Useless Brackets | 408 |
MUCO 3 Useless Code Useless Brackets | 439 |
MUCO 3 Useless Code Useless Brackets | 444 |
MUCO 3 Useless Code Useless Brackets | 448 |
MUCO 3 Useless Code Useless Brackets | 463 |
MUCO 3 Useless Code Useless Brackets | 501 |
MUCO 3 Useless Code Useless Brackets | 508 |
MUCO 3 Useless Code Useless Brackets | 526 |
MUCO 3 Useless Code Useless Brackets | 561 |
MUCO 3 Useless Code Useless Brackets | 567 |
MUCO 3 Useless Code Useless Brackets | 572 |
MUOT 3 Updates outside transaction | 561 |
QAFM 3 Var Assignment from potentially many rows | 198 |
QISO 3 Set isolation level | 60 |
QIWC 3 Insert with not all columns specified missing 9 columns out of 15 | 311 |
QIWC 3 Insert with not all columns specified missing 9 columns out of 15 | 370 |
QIWC 3 Insert with not all columns specified missing 11 columns out of 15 | 426 |
QIWC 3 Insert with not all columns specified missing 8 columns out of 15 | 487 |
QIWC 3 Insert with not all columns specified missing 10 columns out of 15 | 546 |
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_cinfo, attribute, class} | 180 |
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_cinfo, attribute, class} | 199 |
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, object_cinfo, attribute, class} | 294 |
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, object_cinfo, attribute, class} | 302 |
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, object_cinfo, attribute, class} | 326 |
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_info1, object_type, object_cinfo, attribute, class} | 353 |
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_info1, object_type, object_cinfo, attribute, class} | 361 |
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_info1, object_type, object_cinfo, attribute, class} | 385 |
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: {class, object_type, attribute} | 413 |
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: {class, object_type, attribute} | 419 |
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, attribute, class} | 439 |
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: {attribute, object_type, object_info1, object_cinfo, object, class} | 468 |
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: {attribute, object_type, object_info1, object_cinfo, object, class} | 477 |
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: {attribute, object_type, object_info1, object_cinfo, object, class} | 501 |
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_cinfo, attribute, class} | 531 |
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_cinfo, attribute, class} | 538 |
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_cinfo, attribute, class} | 561 |
MSUB 2 Subquery Marker | 143 |
MSUB 2 Subquery Marker | 153 |
MSUB 2 Subquery Marker | 156 |
MSUB 2 Subquery Marker | 167 |
MSUB 2 Subquery Marker | 179 |
MSUB 2 Subquery Marker | 236 |
MSUB 2 Subquery Marker | 247 |
MSUB 2 Subquery Marker | 253 |
MSUB 2 Subquery Marker | 263 |
MSUB 2 Subquery Marker | 293 |
MSUB 2 Subquery Marker | 352 |
MSUB 2 Subquery Marker | 412 |
MSUB 2 Subquery Marker | 467 |
MSUB 2 Subquery Marker | 530 |
MTR1 2 Metrics: Comments Ratio Comments: 31% | 22 |
MTR2 2 Metrics: Cyclomatic Complexity Cyclo: 70 = 93dec - 25exi + 2 | 22 |
MTR3 2 Metrics: Query Complexity Complexity: 309 | 22 |
DEPENDENCIES |
PROCS AND TABLES USED reads table master..syslogins (1) read_writes table sybsystemprocs..sysattributes reads table sybsystemprocs..sysobjects reads table sybsystemprocs..sysusers read_writes table master..sysattributes (1) |