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

Как да премахнете ограничението по подразбиране на SQL, без да знаете името му?

Разширявайки кода на Мич Уит, следният скрипт ще генерира командата за премахване на ограничението и динамичното му изпълнение.

declare @schema_name nvarchar(256)
declare @table_name nvarchar(256)
declare @col_name nvarchar(256)
declare @Command  nvarchar(1000)

set @schema_name = N'MySchema'
set @table_name = N'Department'
set @col_name = N'ModifiedDate'

select @Command = 'ALTER TABLE ' + @schema_name + '.[' + @table_name + '] DROP CONSTRAINT ' + d.name
 from sys.tables t
  join sys.default_constraints d on d.parent_object_id = t.object_id
  join sys.columns c on c.object_id = t.object_id and c.column_id = d.parent_column_id
 where t.name = @table_name
  and t.schema_id = schema_id(@schema_name)
  and c.name = @col_name

--print @Command

execute (@Command)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Автоматично събиране на данни:файлове с бази данни и логически устройства в MS SQL Server

  2. Заявка за актуализиране на SQL с помощта на съединения

  3. Как да преместя таблица в схема в T-SQL

  4. Разлика между #temptable и ##TempTable?

  5. Как да коригирате „Изразът EXECUTE не бе успешен, защото неговата клауза WITH RESULT SETS посочва 1 набор(а) резултата...“ в SQL Server