Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Porzucanie nienazwanych ograniczeń

Aby usunąć pojedyncze nienazwane domyślne ograniczenie w kolumnie, użyj następującego kodu:

DECLARE @ConstraintName VARCHAR(256)
SET @ConstraintName = (
     SELECT             obj.name
     FROM               sys.columns col 

     LEFT OUTER JOIN    sys.objects obj 
     ON                 obj.object_id = col.default_object_id 
     AND                obj.type = 'F' 

     WHERE              col.object_id = OBJECT_ID('TableName') 
     AND                obj.name IS NOT NULL
     AND                col.name = 'ColunmName'
)   

IF(@ConstraintName IS NOT NULL)
BEGIN
    EXEC ('ALTER TABLE [TableName] DROP CONSTRAINT ['[email protected]+']')
END

Jeśli chcesz to zrobić dla domyślnej kolumny, która jest prawdopodobnie bardziej powszechna niż oryginalne pytanie i jestem pewien, że wiele osób trafi na to z wyszukiwarki Google, po prostu zmień wiersz:

obj.type = 'F'

do

obj.type = 'D'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dodaj wiersz podsumowania z sumami

  2. Utwórz profil poczty bazy danych w programie SQL Server (T-SQL)

  3. SQL Server:funkcje z wartościami przechowywanymi w tabeli a procedury składowane

  4. Napraw komunikat 241 „Konwersja nie powiodła się podczas konwersji daty i/lub czasu z ciągu znaków” w SQL Server

  5. Jak mogę zobaczyć wszystkie znaki specjalne dozwolone w polu varchar lub char w programie SQL Server?