Fang von null Warnungen Aggregatfunktionen in sql

Wie macht man den debugger verwenden, die in sql 2008 /2012 fangen von null-Werten in Datensätzen?

Finden Sie unter:

drop table abc

create table abc(
a  int
)
go 
insert into abc values(1)
insert into abc values(null)
insert into abc values(2)

select max(a) from abc

(1 row(s) affected)
Warning: Null value is eliminated by an aggregate or other SET operation.

Kann dies rectifed by doing:

SELECT max(isNull(a,0)) FROM abc

was in Ordnung ist, bis ich komme bis zu 200 Zeile Abfragen mit mehreren Ebenen verschachteln,und ein ResultSet von 2000 sonderbare Aufzeichnungen. - Und dann haben keine Ahnung, welche Spalte wirft die Warnung.

Wie füge ich bedingte breakpoints ( oder brechen Sie auf Warnung ) in der SQL-debugger? ( wenn es überhaupt möglich ist )

  • Warum müssen Sie fangen die Warnungen? SQL wird einfach ignorieren null-Werte, die in der Regel das richtige zu tun. In deinem Beispiel, wenn Ihre Tabelle enthält { -1, null, -2}, max(a) zurück -1, in der Erwägung, dass max(isnull(a, 0)) zurück 0.
  • Ich würde gerne wissen, wo / warum die Warnung wird ausgelöst, um zu überprüfen meine Logik
InformationsquelleAutor Alex | 2012-12-19
Schreibe einen Kommentar