Quote:
Originally Posted by Wanetrain
Nein, TwiLight fing es an, bringt es zu ende.
Erklär mal den leuten was der unterschied zwischen NULL und 0 ist, aber sachlich. :)
Wunden Punkt? da müssen maschinen kommen und kene ersatzteile.
|
NULL ist für einen String und einen Zahlentyp (int, float, double, real, ...) bzw für JEDE Spaltenart in SQL eine leere Spalte.
0 hingegen wird, wenn in der Variablen-Deklaration verwendet, als DEFAULT Value verwendet, wenn die Prozedur ausgeführt wird.
Code:
@varname varchar(12) = ''
ist etwas anderes als
Code:
@varname varchar(12) = 0
Was bedeutet das für einen Ablauf?
Gibst du KEINEN einzigen Wert an die Prozedur mit und hast keine DEFAULTS gesetzt ist es klar, dass dein result entweder nichts ist (return NULL) oder nicht das, was angegeben war.
Code:
CREATE proc usp_test
@testvar1 char(1) = '',
@testvar2 char(1) = 0,
@testvar3 char(1) = NULL
as
select * from linkedserver.dbase.dbo.tableBla
return
Nehmen wir das mal als Prozedur, die wir verwenden wollen. - Deiner (ehemaligen) Meinung nach wäre ja alles das selbe ;p
Wenn du sie ausführst, kannst du für JEDE Variable einen Wert angeben (er überschreibt dann den default). Tust du dies nicht, dann werden die defaults angenommen (testvar1 und testvar3 werden das selbe liefern, testvar2 hingegen wird 0 verwenden.
Learn your basics, dude.