SqlServer-Tabelle erstellen mit MySql wie auto_increment primary key
Ich möchte eine Tabelle in SQL Server hinzufügen, auf " einfügen, automatisch erhöht primary key. Dies sollte ein autoincremented id ähnlich wie bei MySql auto_increment-Funktionalität. (Unten)
create table foo
(
user_id int not null auto_increment,
name varchar(50)
)
Gibt es eine Möglichkeit, dies zu tun mit heraus erstellen einen insert-trigger?
InformationsquelleAutor Aldur | 2008-09-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie diese
InformationsquelleAutor
OP beantragt eine automatisch erhöht primary key. Die IDENTITÄT Schlüsselwort nicht durch sich selbst, machen Sie eine Spalte als primary key.
InformationsquelleAutor
Haben Sie beantwortet Ihre Frage, aber ich möchte hinzufügen, ein Ratschlag für jemanden, der neu mit identity-Spalten. Es gibt Zeiten, wenn Sie haben, um den Rückgabewert der Identität nur eingefügt, so dass Sie einfügen in einer verknüpften Tabelle. Viele Quellen sagen, Sie @@identity um diesen Wert. Unter keinen Umständen sollten Sie jemals die Verwendung von @@identity-wenn Sie möchten, zu mantain die Integrität der Daten. Es wird die Identität geschaffen, die in einem trigger, wenn einer von Ihnen Hinzugefügt wird, fügen Sie zu einem anderen Tisch. Da Sie nicht garantieren können, wird der Wert von @@identity wird immer richtig sein, am besten ist es, nie mit @@identity. Verwenden Sie scope_identity() auf, um diesen Wert statt. Ich weiß, das ist leicht off-topic, aber es ist wichtig, um Ihr Verständnis bezüglich der Nutzung der Identität mit SQL Server. Und Vertrauen Sie mir, Sie wollte nicht sein ein problem zu beheben verwandten Datensätze mit der falschen Identität, Wert, Sie gefüttert. Dies ist etwas, das kann ruhig schief gehen für Monate, bevor es dicovered und ist fast unmöglich zu reparieren die Daten danach.
InformationsquelleAutor
Wie andere erwähnt haben: fügen Sie die IDENTITY-Attribut der Spalte, und machen es zu einem Primärschlüssel.
Gibt es allerdings Unterschiede zwischen MSSQL IDENTITÄT und MySQL AUTO_INCREMENT:
Einschränkung (oft in form einer
primary key) definiert werden, für die
AUTO_INCREMENT-Spalte.
MSSQL nicht so eine Anforderung.
MSSQL verhindert, dass Sie manuell einfügen eines Wertes in eine IDENTITÄT
Spalte; falls erforderlich, können Sie überschreiben
dies durch die Ausgabe von "SET
IDENTITY_INSERT tablename"
Befehl vor dem einfügen.
MSSQL weigert sich, die Werte zu aktualisieren, die in einer
IDENTITY-Spalte.
InformationsquelleAutor
Nur das Feld als identity-Feld.
InformationsquelleAutor
deklarieren Sie das Feld Identität
InformationsquelleAutor
Als riet oben, ein IDENTITY-Feld.
InformationsquelleAutor
Wie schon andere gesagt haben, legen Sie einfach die option Identität.
InformationsquelleAutor