Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Отпадане на неименувани ограничения

За да премахнете отделно неименувано ограничение по подразбиране в колона, използвайте следния код:

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

Ако искате да направите това за колона по подразбиране, което вероятно е по-често срещано от първоначалния въпрос и съм сигурен, че много хора ще стигнат до това от търсене в Google, тогава просто променете реда:

obj.type = 'F'

до

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. Ред на изпълнение на SQL заявката

  2. Как да изчистя буфера PRINT в TSQL?

  3. SQL точка нотация

  4. Как мога да избера от списък със стойности в SQL Server

  5. SQL Server:Вземете първичен ключ на таблицата с помощта на sql заявка