angiver ækvivalent opførsel af ligeværdige (=) og ikke lig med (< >) sammenligningsoperatører, når de bruges med null-værdier.
syntaks
Indstil ANSI_NULLS {ON | OFF}
bemærkninger
KVL-92-standarden kræver, at en lig med (=) eller ikke lig med (< >) sammenligning mod en null-værdi evalueres til falsk. Når indstillet ANSI_NULLS er slået til, returnerer en SELECT-sætning ved hjælp af hvor column_name = NULL nul rækker, selvom der er null-værdier i column_name. En SELECT sætning ved hjælp af hvor column_name < > NULL returnerer nul rækker, selvom der er nonnull værdier i column_name.
når indstillet ANSI_NULLS er slået fra, er sammenligningsoperatørerne lig med (=) og ikke lig med (< >) ikke standard. En SELECT-sætning ved hjælp af hvor column_name = NULL returnerer rækkerne med null-værdier i column_name. En SELECT-sætning ved hjælp af hvor kolonnenavn < > NULL returnerer rækkerne med nonnull-værdier i kolonnen. Derudover returnerer en SELECT-sætning ved hjælp af hvor kolonnenavn <> værdi alle rækker, der ikke er værdi, og som ikke er NULL.
Bemærk om en tom streng fortolkes som enten et enkelt mellemrum eller som en sand tom streng styres af kompatibilitetsniveauindstillingen for sp_dbcmptlevel. Hvis kompatibilitetsniveauet er mindre end eller lig med 65, fortolker vi tomme strenge som enkeltrum. Hvis kompatibilitetsniveauet er lig med 70, fortolker vi tomme strenge som tomme strenge. For mere information, se sp_dbcmptlevel.
når indstillet ANSI_NULLS er aktiveret, evalueres alle sammenligninger mod en null-værdi til ukendt. Når indstillet ANSI_NULLS er slået fra, evalueres sammenligninger af alle data mod en null-værdi til SAND, hvis dataværdien er NULL. Hvis det ikke er angivet, gælder indstillingen af ANSI nulls-indstillingen i den aktuelle database. Du kan finde flere oplysninger om ANSI nulls-databaseindstillingen i sp_dboption og indstilling af databaseindstillinger.
for at et script skal fungere efter hensigten, uanset ANSI nulls-databaseindstillingen eller indstillingen af sæt ANSI_NULLS, er brug NULL og er IKKE NULL i sammenligninger, der kan indeholde null-værdier.
for lagrede procedurer bruger vi den indstillede ansi_nulls indstillingsværdi fra den oprindelige oprettelsestid for den lagrede procedure. Når den lagrede procedure efterfølgende udføres, gendannes indstillingen af sæt ANSI_NULLS til den oprindeligt anvendte værdi og træder i kraft. Når påberåbes inde i en lagret procedure, er indstillingen af sæt ANSI_NULLS ikke ændret.
Indstil ANSI_NULLS skal indstilles til til for at udføre distribuerede forespørgsler.
Indstil ANSI_NULLS skal også være tændt, når du opretter eller manipulerer indekser på beregnede kolonner eller indekserede visninger. Hvis sæt ANSI_NULLS er slået fra, vil oprette, opdatere, indsætte og slette udsagn på tabeller med indekser på beregnede kolonner eller indekserede visninger mislykkes. Server vil returnere en fejl, der viser alle indstillede indstillinger, der overtræder de krævede værdier. Når du udfører en SELECT-sætning, ignorerer serveren indeksværdierne på beregnede kolonner eller visninger og løser markeringen, som om der ikke var sådanne indekser på tabellerne eller visningerne.
Bemærk ANSI_NULLS er en af syv sæt indstillinger, der skal indstilles til krævede værdier, når der beskæftiger sig med indekser på beregnede kolonner eller indekserede visninger. Indstillingerne ANSI_PADDING, ANSI_ADVARSLER, ARITHABORT, CITED_IDENTIFIER og CONCAT_NULL_YIELDS_NULL skal også indstilles til til, mens NUMERIC_ROUNDABORT skal indstilles til fra.
ODBC-driveren og Microsoft OLE DB-udbyderen til serveren indstiller automatisk ANSI_NULLS til Til ved tilslutning. Denne indstilling kan konfigureres i ODBC-datakilder, i ODBC-forbindelsesattributter eller i OLE DB-forbindelsesegenskaber, der er angivet i applikationen, før du opretter forbindelse til ODBC-serveren. Indstil ANSI_NULLS som standard TIL FRA for forbindelser fra DB-Library-applikationer.
når SET ANSI_DEFAULTS er slået til, er SET ANSI_NULLS aktiveret.
indstillingen af sæt ANSI_NULLS er indstillet til udfør eller kør tid og ikke på parse tid.
tilladelser
Indstil ansi_nulls tilladelser som standard til alle brugere.
eksempler
dette eksempel bruger ligeværdige (=) og ikke lig med (< >) sammenligningsoperatorer til at foretage sammenligninger med NULL-og nonnull-værdier i en tabel. Dette eksempel viser også, at er NULL ikke påvirkes af indstillingen SET ANSI_NULLS.
Se også
= (lig med)
hvis…ELSE
<> (ikke lig med)
SET
SET ANSI_DEFAULTS
hvor
mens