Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come eliminare tutti i vincoli predefiniti nel database di SQL Server - Esercitazione su SQL Server / TSQL Parte 94

Scenario:

Lavori come sviluppatore di SQL Server, devi generare script per eliminare tutti i vincoli predefiniti nel database di SQL Server.

Soluzione:

Per eliminare il vincolo predefinito, utilizziamo la sintassi di seguito
Alter Table [SchemaName].[TableName]Drop Constraint [Nome vincolo]
La query sottostante può essere utilizzata per generare script per generare tutti i vincoli predefiniti nel database di SQL ServerSQL Server.
USE YourDatabaseName
go
SELECT
    DB_Name() AS DBName,
    Schema_name(t.Schema_id)AS SchemaName, 
    t.name AS TableName, 
    c.name AS ColumnName, 
    d.name AS DefaultConstraintName, 
    d.definition AS DefaultDefinition,
    'Alter table ['+Schema_name(t.Schema_id)+'].['
    +t.name+'] Drop Constraint ['+d.name+']' as DropDefaultConstraintQuery
FROM sys.default_constraints d
INNER JOIN sys.columns c ON
    d.parent_object_id = c.object_id
    AND d.parent_column_id = c.column_id
INNER JOIN sys.tables t ON
    t.object_id = c.object_id
 
 
 
 Se desideri escludere alcune tabelle o schemi, puoi filtrare ulteriormente i record utilizzando la clausola where nella query. Ho eseguito la query precedente e ha generato script di rilascio per tutti i vincoli predefiniti.
Come generare script per eliminare tutti i vincoli predefiniti nel database di SQL Server

Prendi i risultati dalla colonna DropDefaultConstraint ed esegui per eliminare i vincoli predefiniti.

Video demo:come eliminare tutti i vincoli predefiniti nel database di SQL Server