DEFECTS |
QBGB 6 Bad group by d.name |
561 |
QCAR 6 Cartesian product between tables #spdbusages u and [master..spt_values v] |
820 |
QJWI 5 Join or Sarg Without Index |
278 |
QJWI 5 Join or Sarg Without Index |
323 |
QJWI 5 Join or Sarg Without Index |
368 |
QJWI 5 Join or Sarg Without Index |
416 |
MEST 4 Empty String will be replaced by Single Space |
256 |
MEST 4 Empty String will be replaced by Single Space |
284 |
MEST 4 Empty String will be replaced by Single Space |
329 |
MEST 4 Empty String will be replaced by Single Space |
374 |
MEST 4 Empty String will be replaced by Single Space |
422 |
MEST 4 Empty String will be replaced by Single Space |
451 |
MEST 4 Empty String will be replaced by Single Space |
477 |
MEST 4 Empty String will be replaced by Single Space |
493 |
MEST 4 Empty String will be replaced by Single Space |
495 |
MEST 4 Empty String will be replaced by Single Space |
506 |
MEST 4 Empty String will be replaced by Single Space |
738 |
MEST 4 Empty String will be replaced by Single Space |
769 |
MEST 4 Empty String will be replaced by Single Space |
780 |
MINU 4 Unique Index with nullable columns master..sysattributes |
master..sysattributes |
MINU 4 Unique Index with nullable columns master..sysmessages |
master..sysmessages |
MTYP 4 Assignment type mismatch @bitdesc: varchar(30) = varchar(1024) |
272 |
MTYP 4 Assignment type mismatch @bitdesc: varchar(30) = varchar(1024) |
317 |
MTYP 4 Assignment type mismatch @bitdesc: varchar(30) = varchar(1024) |
362 |
MTYP 4 Assignment type mismatch @bitdesc: varchar(30) = varchar(1024) |
410 |
MTYP 4 Assignment type mismatch @bitdesc: varchar(30) = varchar(768) |
469 |
MTYP 4 Assignment type mismatch @na_phrase: varchar(30) = varchar(1024) |
653 |
MUSP 4 Unquoted String Parameter sybsystemprocs..sp_autoformat: @fulltabname |
588 |
MUSP 4 Unquoted String Parameter sybsystemprocs..sp_autoformat: @fulltabname |
636 |
MUSP 4 Unquoted String Parameter sybsystemprocs..sp_autoformat: @fulltabname |
864 |
MUSP 4 Unquoted String Parameter sybsystemprocs..sp_autoformat: @fulltabname |
913 |
QPUI 4 Join or Sarg with Un-Rooted Partial Index Use SARG Candidate index: spt_values.spt_valuesclust clustered (number, type) Intersection: {type} |
112 |
QPUI 4 Join or Sarg with Un-Rooted Partial Index Use SARG Candidate index: spt_values.spt_valuesclust clustered (number, type) Intersection: {type} |
119 |
QPUI 4 Join or Sarg with Un-Rooted Partial Index Use SARG Candidate index: spt_values.spt_valuesclust clustered (number, type) Intersection: {type} |
126 |
QPUI 4 Join or Sarg with Un-Rooted Partial Index Use SARG Candidate index: spt_values.spt_valuesclust clustered (number, type) Intersection: {type} |
133 |
QPUI 4 Join or Sarg with Un-Rooted Partial Index Use SARG Candidate index: spt_values.spt_valuesclust clustered (number, type) Intersection: {type} |
182 |
QPUI 4 Join or Sarg with Un-Rooted Partial Index Use JOIN Candidate index: sysattributes.csysattributes unique clustered (class, attribute, object_type, object, object_info1, object_info2, object_info3, object_cinfo) Intersection: {object} Uncovered: [object_type, object_info1, object_info2, object_info3, object_cinfo] |
613 |
QPUI 4 Join or Sarg with Un-Rooted Partial Index Use JOIN Candidate index: sysattributes.csysattributes unique clustered (class, attribute, object_type, object, object_info1, object_info2, object_info3, object_cinfo) Intersection: {object, object_info1} Uncovered: [object_type, object_info2, object_info3, object_cinfo] |
614 |
QPUI 4 Join or Sarg with Un-Rooted Partial Index Use SARG Candidate index: spt_values.spt_valuesclust clustered (number, type) Intersection: {type} |
666 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
71 |
QTYP 4 Comparison type mismatch smallint = int |
71 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
77 |
QTYP 4 Comparison type mismatch smallint = int |
77 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
239 |
QTYP 4 Comparison type mismatch smallint = int |
239 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
243 |
QTYP 4 Comparison type mismatch smallint = int |
243 |
QTYP 4 Comparison type mismatch Comparison type mismatch: int vs smallint |
455 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
455 |
QTYP 4 Comparison type mismatch smallint = int |
455 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
471 |
QTYP 4 Comparison type mismatch smallint = int |
471 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
536 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
612 |
QTYP 4 Comparison type mismatch smallint = int |
612 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
613 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
614 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
615 |
QTYP 4 Comparison type mismatch Comparison type mismatch: int vs smallint |
617 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
618 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
619 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
620 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
621 |
QTYP 4 Comparison type mismatch Comparison type mismatch: int vs smallint |
622 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
630 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
631 |
QTYP 4 Comparison type mismatch Comparison type mismatch: int vs smallint |
764 |
QTYP 4 Comparison type mismatch Comparison type mismatch: int vs smallint |
789 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
799 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
825 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
838 |
QTYP 4 Comparison type mismatch Comparison type mismatch: smallint vs int |
853 |
TNOI 4 Table with no index sybsystemprocs..syssegments |
sybsystemprocs..syssegments |
TNOU 4 Table with no unique index master..spt_values |
master..spt_values |
MDYN 3 Proc uses Dynamic SQL but is not flagged with Dynamic Ownership Chain |
19 |
MGTP 3 Grant to public master..spt_values |
|
MGTP 3 Grant to public master..sysattributes |
|
MGTP 3 Grant to public master..sysdatabases |
|
MGTP 3 Grant to public master..sysdevices |
|
MGTP 3 Grant to public master..sysmessages |
|
MGTP 3 Grant to public master..sysusages |
|
MGTP 3 Grant to public sybsystemprocs..sp_helpdb |
|
MGTP 3 Grant to public sybsystemprocs..syssegments |
|
MNER 3 No Error Check should check @@error after insert |
218 |
MNER 3 No Error Check should check return value of exec |
509 |
MNER 3 No Error Check should check @@error after update |
515 |
MNER 3 No Error Check should check @@error after select into |
536 |
MNER 3 No Error Check should check @@error after select into |
561 |
MNER 3 No Error Check should check return value of exec |
588 |
MNER 3 No Error Check should check @@error after select into |
601 |
MNER 3 No Error Check should check @@error after delete |
629 |
MNER 3 No Error Check should check return value of exec |
636 |
MNER 3 No Error Check should check @@error after delete |
795 |
MNER 3 No Error Check should check @@error after insert |
818 |
MNER 3 No Error Check should check @@error after insert |
847 |
MNER 3 No Error Check should check return value of exec |
857 |
MNER 3 No Error Check should check @@error after select into |
859 |
MNER 3 No Error Check should check return value of exec |
864 |
MNER 3 No Error Check should check @@error after select into |
908 |
MNER 3 No Error Check should check return value of exec |
913 |
MUCO 3 Useless Code Useless Brackets |
102 |
MUCO 3 Useless Code Useless Brackets |
114 |
MUCO 3 Useless Code Useless Brackets |
121 |
MUCO 3 Useless Code Useless Brackets |
128 |
MUCO 3 Useless Code Useless Brackets |
135 |
MUCO 3 Useless Code Useless Brackets |
263 |
MUCO 3 Useless Code Useless Brackets |
268 |
MUCO 3 Useless Code Useless Brackets |
297 |
MUCO 3 Useless Code Useless Brackets |
308 |
MUCO 3 Useless Code Useless Brackets |
313 |
MUCO 3 Useless Code Useless Brackets |
342 |
MUCO 3 Useless Code Useless Brackets |
353 |
MUCO 3 Useless Code Useless Brackets |
358 |
MUCO 3 Useless Code Useless Brackets |
378 |
MUCO 3 Useless Code Useless Brackets |
390 |
MUCO 3 Useless Code Useless Brackets |
401 |
MUCO 3 Useless Code Useless Brackets |
406 |
MUCO 3 Useless Code Useless Brackets |
435 |
MUCO 3 Useless Code Useless Brackets |
457 |
MUCO 3 Useless Code Useless Brackets |
465 |
MUCO 3 Useless Code Useless Brackets |
467 |
MUCO 3 Useless Code Useless Brackets |
477 |
MUCO 3 Useless Code Useless Brackets |
487 |
MUCO 3 Useless Code Useless Brackets |
493 |
MUCO 3 Useless Code Useless Brackets |
495 |
MUCO 3 Useless Code Useless Brackets |
506 |
MUCO 3 Useless Code Useless Brackets |
552 |
MUCO 3 Useless Code Useless Brackets |
647 |
MUCO 3 Useless Code Useless Brackets |
675 |
MUCO 3 Useless Code Useless Brackets |
681 |
MUCO 3 Useless Code Useless Brackets |
696 |
MUCO 3 Useless Code Useless Brackets |
767 |
MUCO 3 Useless Code Useless Brackets |
769 |
MUCO 3 Useless Code Useless Brackets |
780 |
MUCO 3 Useless Code Useless Brackets |
802 |
MUCO 3 Useless Code Useless Brackets |
810 |
MUCO 3 Useless Code Useless Brackets |
812 |
MUCO 3 Useless Code Useless Brackets |
890 |
MUCO 3 Useless Code Useless Brackets |
906 |
MUCO 3 Useless Code Useless Brackets |
919 |
MUUF 3 Update or Delete with Useless From Clause |
515 |
QAFM 3 Var Assignment from potentially many rows |
110 |
QAFM 3 Var Assignment from potentially many rows |
117 |
QAFM 3 Var Assignment from potentially many rows |
124 |
QAFM 3 Var Assignment from potentially many rows |
131 |
QAFM 3 Var Assignment from potentially many rows |
180 |
QAFM 3 Var Assignment from potentially many rows |
237 |
QAFM 3 Var Assignment from potentially many rows |
453 |
QAFM 3 Var Assignment from potentially many rows |
469 |
QAFM 3 Var Assignment from potentially many rows |
552 |
QAFM 3 Var Assignment from potentially many rows |
644 |
QAFM 3 Var Assignment from potentially many rows |
647 |
QAFM 3 Var Assignment from potentially many rows |
653 |
QAFM 3 Var Assignment from potentially many rows |
814 |
QAFM 3 Var Assignment from potentially many rows |
873 |
QCRS 3 Conditional Result Set |
781 |
QCRS 3 Conditional Result Set |
892 |
QCRS 3 Conditional Result Set |
899 |
QCTC 3 Conditional Table Creation |
859 |
QCTC 3 Conditional Table Creation |
908 |
QDIS 3 Check correct use of 'select distinct' |
561 |
QDIS 3 Check correct use of 'select distinct' |
659 |
QDIS 3 Check correct use of 'select distinct' |
859 |
QGWO 3 Group by/Distinct/Union without order by |
561 |
QGWO 3 Group by/Distinct/Union without order by |
659 |
QGWO 3 Group by/Distinct/Union without order by |
859 |
QISO 3 Set isolation level |
62 |
QIWC 3 Insert with not all columns specified missing 1 columns out of 2 |
218 |
QJWT 3 Join or Sarg Without Index on temp table |
543 |
QJWT 3 Join or Sarg Without Index on temp table |
575 |
QJWT 3 Join or Sarg Without Index on temp table |
576 |
QJWT 3 Join or Sarg Without Index on temp table |
578 |
QJWT 3 Join or Sarg Without Index on temp table |
579 |
QJWT 3 Join or Sarg Without Index on temp table |
611 |
QJWT 3 Join or Sarg Without Index on temp table |
617 |
QJWT 3 Join or Sarg Without Index on temp table |
662 |
QJWT 3 Join or Sarg Without Index on temp table |
663 |
QJWT 3 Join or Sarg Without Index on temp table |
667 |
QJWT 3 Join or Sarg Without Index on temp table |
800 |
QJWT 3 Join or Sarg Without Index on temp table |
824 |
QJWT 3 Join or Sarg Without Index on temp table |
839 |
QJWT 3 Join or Sarg Without Index on temp table |
852 |
QJWT 3 Join or Sarg Without Index on temp table |
863 |
QNAJ 3 Not using ANSI Inner Join |
273 |
QNAJ 3 Not using ANSI Inner Join |
318 |
QNAJ 3 Not using ANSI Inner Join |
363 |
QNAJ 3 Not using ANSI Inner Join |
411 |
QNAJ 3 Not using ANSI Inner Join |
542 |
QNAJ 3 Not using ANSI Inner Join |
573 |
QNAJ 3 Not using ANSI Inner Join |
608 |
QNAJ 3 Not using ANSI Inner Join |
660 |
QNAJ 3 Not using ANSI Inner Join |
740 |
QNAJ 3 Not using ANSI Inner Join |
798 |
QNAJ 3 Not using ANSI Inner Join |
820 |
QNAJ 3 Not using ANSI Inner Join |
836 |
QNAJ 3 Not using ANSI Inner Join |
849 |
QNAM 3 Select expression has no name substring(@sqlbuf, 1, 70) |
781 |
QNAO 3 Not using ANSI Outer Join |
862 |
QNCO 3 No column in result set |
819 |
QNUA 3 Should use Alias: Table #spdbdesc |
542 |
QNUA 3 Should use Alias: Table #spdbdesc |
574 |
QNUA 3 Should use Alias: Column dbdesc should use alias #spdbdesc |
859 |
QNUA 3 Should use Alias: Column name should use alias syssegments |
860 |
QNUA 3 Should use Alias: Table #spdbdesc |
862 |
QNUA 3 Should use Alias: Table sybsystemprocs..syssegments |
862 |
QNUA 3 Should use Alias: Column dbid should use alias #spdbdesc |
863 |
QNUA 3 Should use Alias: Column segment should use alias syssegments |
863 |
QPRI 3 Join or Sarg with Rooted Partial Index Use SARG Candidate index: sysmessages.ncsysmessages unique (error, dlevel, langid) Intersection: {error, langid} |
69 |
QPRI 3 Join or Sarg with Rooted Partial Index Use SARG Candidate index: sysmessages.ncsysmessages unique (error, dlevel, langid) Intersection: {error, langid} |
75 |
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, class, attribute} |
239 |
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, class, attribute} |
243 |
QPRI 3 Join or Sarg with Rooted Partial Index Use JOIN Candidate index: sysmessages.ncsysmessages unique (error, dlevel, langid) Intersection: {error} Uncovered: [dlevel] |
280 |
QPRI 3 Join or Sarg with Rooted Partial Index Use JOIN Candidate index: sysmessages.ncsysmessages unique (error, dlevel, langid) Intersection: {error} Uncovered: [dlevel] |
325 |
QPRI 3 Join or Sarg with Rooted Partial Index Use JOIN Candidate index: sysmessages.ncsysmessages unique (error, dlevel, langid) Intersection: {error} Uncovered: [dlevel] |
370 |
QPRI 3 Join or Sarg with Rooted Partial Index Use JOIN Candidate index: sysmessages.ncsysmessages unique (error, dlevel, langid) Intersection: {error} Uncovered: [dlevel] |
418 |
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, class, attribute} |
455 |
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, class, object_info1} |
471 |
QPRI 3 Join or Sarg with Rooted Partial Index Use SARG Candidate index: sysusages.ncsysusages unique (vdevno, vstart) Intersection: {vdevno} |
544 |
QPRI 3 Join or Sarg with Rooted Partial Index Use JOIN Candidate index: sysattributes.csysattributes unique clustered (class, attribute, object_type, object, object_info1, object_info2, object_info3, object_cinfo) Intersection: {class} Uncovered: [attribute, object, object_info1, object_info2, object_info3, object_cinfo] |
613 |
QPRI 3 Join or Sarg with Rooted Partial Index Use JOIN Candidate index: sysattributes.csysattributes unique clustered (class, attribute, object_type, object, object_info1, object_info2, object_info3, object_cinfo) Intersection: {class, attribute} Uncovered: [object, object_info1, object_info2, object_info3, object_cinfo] |
614 |
QPRI 3 Join or Sarg with Rooted Partial Index Use SARG Candidate index: sysmessages.ncsysmessages unique (error, dlevel, langid) Intersection: {error, langid} |
655 |
QPRI 3 Join or Sarg with Rooted Partial Index Use JOIN Candidate index: sysmessages.ncsysmessages unique (error, dlevel, langid) Intersection: {error} Uncovered: [dlevel] |
668 |
QPRI 3 Join or Sarg with Rooted Partial Index Use SARG Candidate index: sysmessages.ncsysmessages unique (error, dlevel, langid) Intersection: {error, langid} |
751 |
QPRI 3 Join or Sarg with Rooted Partial Index Use SARG Candidate index: sysusages.csysusages unique clustered (dbid, lstart) Intersection: {dbid} |
762 |
QPRI 3 Join or Sarg with Rooted Partial Index Use SARG Candidate index: sysmessages.ncsysmessages unique (error, dlevel, langid) Intersection: {error, langid} |
775 |
QSWV 3 Sarg with variable @thisopt, Candidate Index: spt_values.spt_valuesclust clustered(number, type) F |
279 |
QSWV 3 Sarg with variable @thisopt, Candidate Index: spt_values.spt_valuesclust clustered(number, type) F |
324 |
QSWV 3 Sarg with variable @thisopt, Candidate Index: spt_values.spt_valuesclust clustered(number, type) F |
369 |
QSWV 3 Sarg with variable @thisopt, Candidate Index: spt_values.spt_valuesclust clustered(number, type) F |
417 |
QTJ1 3 Table only appears in inner join clause |
542 |
VNRD 3 Variable is not read @imdb_mask |
201 |
VNRD 3 Variable is not read @pgcomp_mask |
202 |
VNRD 3 Variable is not read @rowcomp_mask |
203 |
VUNU 3 Variable is not used @len1 |
47 |
VUNU 3 Variable is not used @len2 |
47 |
VUNU 3 Variable is not used @instancename |
49 |
MDYS 2 Dynamic SQL Marker |
731 |
MRST 2 Result Set Marker |
781 |
MRST 2 Result Set Marker |
892 |
MRST 2 Result Set Marker |
899 |
MSUB 2 Subquery Marker |
68 |
MSUB 2 Subquery Marker |
74 |
MSUB 2 Subquery Marker |
739 |
MSUB 2 Subquery Marker |
749 |
MSUB 2 Subquery Marker |
773 |
MSUB 2 Subquery Marker |
787 |
MSUB 2 Subquery Marker |
885 |
MTR1 2 Metrics: Comments Ratio Comments: 29% |
19 |
MTR2 2 Metrics: Cyclomatic Complexity Cyclo: 141 = 141dec - 2exi + 2 |
19 |
MTR3 2 Metrics: Query Complexity Complexity: 487 |
19 |
PRED_QUERY_COLLECTION 2 {d=master..sysdatabases, u=master..sysusages} 0 |
739 |