sql >> Database >  >> RDS >> Sqlserver

Hoe de standaardbeperking van SQL te laten vallen zonder de naam te kennen?

Voortbouwend op de code van Mitch Wheat, genereert het volgende script de opdracht om de beperking te laten vallen en dynamisch uit te voeren.

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. Er is een DBConcurrency-uitzondering opgetreden tijdens het bijwerken met behulp van Dataadapter

  2. Retourneer de eerste maandag van elke maand in SQLite

  3. Hoe kan ik weten of er een SQL-uitzondering is gegenereerd vanwege een schending van een externe sleutel?

  4. NULL-waarden binnen de NOT IN-clausule