Grundlegendes zum Erstellen und Ändern von Tabellen

Nachdem Sie eine Datenbank entworfen haben, können Sie die Tabellen erstellen, in denen die Daten in der Datenbank gespeichert werden. Die Daten werden in der Regel in dauerhaften Tabellen gespeichert; Sie können jedoch auch temporäre Tabellen erstellen. Tabellen werden so lange in den Datenbankdateien gespeichert, bis sie gelöscht werden. Sie stehen jedem Benutzer zur Verfügung, der über die erforderlichen Berechtigungen verfügt.

Tabelleneigenschaften

Pro Tabelle können bis zu 1.024 Spalten definiert werden. Die Namen für Tabellen und Spalten müssen den Regeln für Bezeichner entsprechen. Sie müssen innerhalb einer bestimmten Tabelle eindeutig sein, ein Spaltenname darf jedoch in unterschiedlichen Tabellen derselben Datenbank verwendet werden. Weitere Informationen finden Sie unter Bezeichner und Verwenden von Bezeichnern als Objektnamen. Darüber hinaus müssen Sie für jede Spalte einen Datentyp definieren. Weitere Informationen finden Sie unter Zuweisen eines Datentyps zu einer Spalte.

Tabellennamen müssen für jedes Schema innerhalb einer Datenbank eindeutig sein. Sie können jedoch mehrere Tabellen mit demselben Namen erstellen, wenn Sie für jede Tabelle ein anderes Schema angeben. Sie können z. B. zwei Tabellen mit dem Namen employees erstellen und Jonah als Schema der einen und Sally als Schema der anderen Tabelle angeben. Wenn Sie eine der employees-Tabellen verwenden müssen, können Sie die beiden Tabellen unterscheiden, indem Sie das Schema zusammen mit dem Namen der Tabelle angeben.

So erstellen Sie eine Tabelle

CREATE TABLE (Transact-SQL)

Vorgehensweise: Erstellen von Tabellen (Visual Database Tools)

Temporäre Tabellen

Temporäre Tabellen sind im Prinzip mit dauerhaften Tabellen identisch. Der einzige Unterschied besteht darin, dass temporäre Tabellen in tempdb gespeichert und automatisch gelöscht werden, sobald sie nicht mehr verwendet werden.

Es gibt zwei Arten von temporären Tabellen: lokale und globale temporäre Tabellen. Sie unterscheiden sich hinsichtlich ihrer Namen, ihrer Sichtbarkeit und ihrer Verfügbarkeit. Lokale temporäre Tabellen weisen als erstes Zeichen ihres Namens ein einzelnes Nummernzeichen (#) auf. Sie sind nur im Rahmen der aktuellen Verbindung des Benutzers sichtbar und werden gelöscht, sobald der Benutzer die Verbindung mit der Instanz von SQL Server trennt. Globale temporäre Tabellen weisen als erste Zeichen ihres Namens zwei Nummernzeichen (##) auf. Nachdem sie erstellt wurden, sind sie für jeden Benutzer sichtbar, und sie werden gelöscht, nachdem alle Benutzer, die auf diese Tabelle verweisen, die Verbindung mit der Instanz von SQL Server getrennt haben.

Wenn Sie z. B. die employees-Tabelle erstellen, kann diese Tabelle so lange von allen Benutzer verwendet werden, die in der Datenbank über die Sicherheitsberechtigungen zu ihrer Verwendung verfügen, bis die Tabelle gelöscht wird. Wenn eine Datenbanksitzung die lokale temporäre Tabelle #employees erstellt, kann nur die Sitzung mit dieser Tabelle arbeiten. Sie wird gelöscht, sobald die Sitzung die Verbindung trennt. Wenn Sie die globale temporäre Tabelle ##employees erstellen, können alle Benutzer in der Datenbank mit dieser Tabelle arbeiten. Wenn die Tabelle von keinem Benutzer verwendet wird, nachdem Sie sie erstellt haben, wird die Tabelle gelöscht, sobald Sie die Verbindung trennen. Wenn ein anderer Benutzer mit der zuvor von Ihnen erstellten Tabelle arbeitet, löscht SQL Server die Tabelle, nachdem Sie die Verbindung getrennt haben und auch alle anderen Sitzungen die Tabelle nicht mehr aktiv verwenden.

Wenn eine temporäre Tabelle mit einer benannten Einschränkung im Bereich einer benutzerdefinierten Transaktion erstellt wird, kann die Anweisung zum Erstellen der temporären Tabelle jeweils nur von einem Benutzer ausgeführt werden. Wenn z. B. von einer gespeicherten Prozedur eine temporäre Tabelle mit einer benannten Primärschlüsseleinschränkung erstellt wird, kann die gespeicherte Prozedur nicht von mehreren Benutzern gleichzeitig ausgeführt werden.

Viele Verwendungen von temporären Tabellen können durch Variablen mit dem table-Datentyp ersetzt werden. Weitere Informationen zum Verwenden von table-Variablen finden Sie unter table (Transact-SQL).

Ändern von Tabellen

Nachdem eine Tabelle erstellt wurde, können Sie viele der Optionen ändern, die ursprünglich beim Erstellen der Tabelle definiert wurden. Sie können u. a. folgende Änderungen vornehmen:

  • Hinzufügen, Ändern oder Löschen von Spalten. Sie können z. B. den Namen, die Länge, den Datentyp, die Genauigkeit, die Dezimalstellen und die NULL-Zulässigkeit einer Spalte ändern. Bei diesen Aktionen müssen jedoch einige Einschränkungen beachtet werden. Weitere Informationen finden Sie unter Ändern von Spalteneigenschaften.

  • Wenn es sich bei der Tabelle um eine partitionierte Tabelle handelt, kann diese neu partitioniert werden, oder einzelne Partitionen können hinzugefügt oder entfernt werden. Weitere Informationen finden Sie unter Ändern von partitionierten Tabellen und Indizes und Effizientes Übertragen von Daten durch Partitionswechsel.

  • Hinzufügen oder Löschen von PRIMARY KEY- und FOREIGN KEY-Einschränkungen.

  • Hinzufügen oder Löschen von UNIQUE- und CHECK-Einschränkungen und DEFAULT-Definitionen (und -Objekten).

  • Hinzufügen oder Löschen einer Bezeichnerspalte mithilfe der IDENTITY- oder ROWGUIDCOL-Eigenschaft. Die ROWGUIDCOL-Eigenschaft kann auch zu vorhandenen Spalten hinzugefügt oder von diesen entfernt werden; es kann jedoch immer nur eine Spalte in einer Tabelle gleichzeitig über die ROWGUIDCOL-Eigenschaft verfügen.

  • Registrieren einer Tabelle und ausgewählter Spalten in der Tabelle für die Volltextindizierung.

Weitere Informationen zu den Änderungen, die an einer Tabelle vorgenommen werden können, finden Sie unter ALTER TABLE (Transact-SQL).

Sie können auch den Namen oder das Schema einer Tabelle ändern. Wenn Sie diese Änderung vornehmen, müssen Sie den Namen der Tabelle auch in allen Triggern, gespeicherten Prozeduren, Transact-SQL-Skripts oder in einem anderen Programmierungscode ändern, der den alten Namen oder das Schema der Tabelle verwendet.

So benennen Sie eine Tabelle um

sp_rename (Transact-SQL)

Tabelleneigenschaften (Visual Database Tools)

So ändern Sie das Schema einer Tabelle

ALTER SCHEMA (Transact-SQL)