Nicht hinzufügen ein "not NULL" - Spalte, um die leeren Tabelle in SQL Server

Ich verstehe, dass, wenn das hinzufügen einer Spalte zu einer Tabelle mit Daten in SQL-server, muss die Spalte einen NULL-option oder Standard. Ansonsten, was würde der SQL Server-pad die neuen Zeilen mit?

Ich bin ratlos, warum kann ich nicht hinzufügen einer not NULL-Spalte einer leeren Tabelle jedoch. Ich habe versucht dies auf zwei Instanzen von SQL 2008 und eine Instanz von SQL 2005 ohne Probleme. Aber bei einem Kunden mit SQL 2000, die dieses problem haben. Ist das mit SQL 2000 oder ist es eine option, die Sie deaktivieren können. Hoffen wir, dass es eine option.

Select @@Version

Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05
Copyright (c) 1988-2003 Microsoft Corporation Developer Edition on Windows
NT 5.1 (Build 2600: Service Pack 3)

Select count(*) from actinv

0

ALTER TABLE [ActInv] ADD [BATCHNUMBER] NVARCHAR(50) NOT NULL

Msg 4901, Ebene 16, Status 1, Zeile 1
ALTER TABLE nur können Spalten Hinzugefügt werden, die null-Werte enthalten kann, oder eine
STANDARD-definition angegeben werden. Die Spalte "BATCHNUMBER" kann nicht Hinzugefügt werden Tabelle
'ActInv", weil es keine null-Werte zulässt und nicht Voreinstellen
definition.

Ich weiß, das klingt blöd, aber ist die Tabelle WIRKLICH leer ist?
Auch ich mache Select count(*) from ActInv und gibt null zurück!
Slect count(*) gibt nur Datensätze, in denen mindestens eine Spalte nicht null ist. Ich weiß, klingt dumm, aber versuchen Sie ein select * from Tabelle statt.
Ich habe nie wusste, dass! Wählen Sie * gibt null Zeilen, obwohl ich gerade überprüft.
Neil N, Sie sind falsch. create table b(int) insert b-Werte(null) select count(*) von b-1

InformationsquelleAutor user69374 | 2009-06-30

Schreibe einen Kommentar