Alter Table è un'istruzione DDL (Data Definition Language) che viene utilizzata per aggiungere, eliminare o modificare le colonne esistenti. Con questa affermazione, è anche possibile rinominare una tabella o una colonna e creare vincoli. Usando una tabella come esempio, questo tutorial mostra le alter istruzioni della tabella con la sintassi.
Puoi scaricare gli esempi utilizzati in questo articolo e provarli qui sul tuo computer locale. È possibile verificare le modifiche alla struttura della tabella utilizzando sp_help 'Dipendente'.
Innanzitutto, iniziamo creando un tavolo.
Crea dipendente tabella (EmployeeId INT, EmployeeName VARCHAR (25), Salary INT, ContactNo VARCHAR (10), DeptId INT, Active BIT,); Crea reparto tabella (DeptId INT PRIMARY KEY, DeptName VARCHAR (50));
SQL Server: aggiungi una colonna a una tabella esistente
Sintassi ALTER TABLE [TableName] ADD [ColumnName] [DataType] [Null OR Not Null] Esempio ALTER TABLE Employee ADD Address VARCHAR (255) NOT NULL
SQL Server: elimina una colonna esistente da una tabella
Sintassi ALTER TABLE [TableName] DROP COLUMN [ColumnName] Esempio ALTER TABLE DROP DROP COLUMN ADDRESS
SQL Server: modifica il tipo di dati di una colonna esistente
Sintassi ALTER TABLE [Nome tabella] ALTER COLUMN [ColumnName] [DataType] Esempio ALTER TABLE Dipendente ALTER COLUMN Stipendio DECIMAL (18,2)
SQL Server: modifica la dimensione di una colonna esistente
Sintassi ALTER TABLE [TableName] ALTER COLUMN [Columnname] [DataType] Esempio ALTER TABLE Dipendente ALTER COLUMN EmployeeName VARCHAR (50)
SQL Server: aggiungere un vincolo di chiave primaria a una tabella esistente
Sintassi ALTER TABLE [TableName] ADD CONSTRAINT [Nome vincolo] PRIMARY KEY (ColumnName) Esempio ALTER TABLE Dipendente ADD CONSTRAINT PK_Employee_EmployeeId PRIMARY KEY (EmployeeId)
SQL Server: elimina il vincolo di chiave primaria esistente su una tabella esistente
Sintassi ALTER TABLE [TableName] DROP CONSTRAINT [ConstraintName] Esempio ALTER TABLE DROP CONSTRAINT DROP PK_Employee_EmployeeId
SQL Server - Aggiungi un vincolo di chiave esterna
Sintassi ALTER TABLE [TableName] ADD CONSTRAINT [Constraintname] FOREIGN KEY (ColumnName) REFERENCES [TableName] (ColumnName) Esempio ALTER TABLE Employee ADD CONSTRAINT Fk_Employee_DeptId KEY FOREIGN (EmployeeId) Dipartimento REFERENCES (DeptId)
SQL Server: elimina un vincolo di chiave esterna
Sintassi ALTER TABLE [TableName] DROP CONSTRAINT [Foreign_Key_Constraint_Name] Esempio ALTER TABLE DROP CONSTRAINT Fk_Employee_DeptId
SQL Server: aggiungere un vincolo di controllo a una tabella esistente
Sintassi ALTER TABLE [TableName] ADD CONSTRAINT [Check_Constraint_Name] CHECK (Check_Condition) Esempio ALTER TABLE Dipendente ADD CONSTRAINT CK_Employee_Salary CHECK (Salary> 0)
SQL Server: elimina il controllo di un vincolo su una tabella esistente
Sintassi ALTER TABLE [TableName] DROP CONSTRAINT [Check_Constraint_Name] Esempio ALTER TABLE Employee DROP CONSTRAINT CK_Employee_Salary
SQL Server: aggiungere un vincolo NULL o NOT NULL a una tabella esistente
Sintassi ALTER TABLE [TableName] ALTER COLUMN [ColumnName] [DataType] [NULL OR NOT NULL] Esempio ALTER TABLE Dipendente ALTER COLUMN ContactNo VARCHAR (10) NULL
SQL Server: aggiungere un vincolo predefinito a una tabella esistente
Sintassi ALTER TABLE [TableName] ADD CONSTRAINT [DefaultConstraintName] DEFAULT [DefaultValue] FOR [ColumnName] Esempio ALTER TABLE Employee ADD CONSTRAINT DF_Employee_Active DEFAULT 0 FOR ACTIVE
SQL Server: rilascia un vincolo predefinito su una tabella esistente
Sintassi ALTER TABLE [TableName] DROP CONSTRAINT [Default_ConstraintName] Esempio ALTER TABLE Employee DROP CONSTRAINT DF_Employee_Active
SQL Server: modifica le regole di confronto di una colonna esistente
Sintassi ALTER TABLE [TableName] ALTER COLUMN [ColumnName] [DataType] COLLATE [CollationName]; Esempio ALTER TABLE Dipendente ALTER COLUMN EmployeeName varchar (25) COLLATE Latin1_General_CI_AS NOT NULL;
SQL Server - Disabilita un vincolo di chiave esterna
Sintassi ALTER TABLE [TableName] NOCHECK CONSTRAINT [ConstraintName]; Esempio ALTER TABLE Dipendente NOCHECK CONSTRAINT Fk_Employee_DeptId;
SQL Server - Disabilita un vincolo di chiave di controllo
Sintassi ALTER TABLE [TableName] NOCHECK CONSTRAINT [ConstraintName]; Esempio ALTER TABLE Employee NOCHECK CONSTRAINT CK_Employee_Salary;
SQL Server: rinomina una colonna in una tabella
Sintassi EXEC sp_RENAME TableName.OldColumnName, NewColumnName, ColumnName Esempio EXEC sp_RENAME 'table_name.old_name', 'new_name', 'COLUMN'