En Oracle, puedo emitir una DROP TABLE ... restricciones en cascada y no se quejará de FK, etc.T-SQL: DROP ¿Limitaciones en cascada de la tabla equivalentes?
¿Hay un equivalente en T-SQL?
En Oracle, puedo emitir una DROP TABLE ... restricciones en cascada y no se quejará de FK, etc.T-SQL: DROP ¿Limitaciones en cascada de la tabla equivalentes?
¿Hay un equivalente en T-SQL?
NO, EN SSMS haga clic derecho en la tabla y seleccione "tabla de secuencia de comandos como" continuación "gota a", luego "nueva ventana", "archivo ..." o "portapapeles" y se producirá una secuencia de comandos que incluirá todas las gotas necesarias de FKs etc.
Para los que llegó aquí con la esperanza de una respuesta de aplicación más general
esto encontrará la restricción, dejarlo caer, y después la columna
Gracias y un voto para Tim Lentine How to find the name of a default constraint para el comienzo.
Declare @sql VarChar(255)
Declare @tableName Varchar(255)
Declare @columnName VarChar(255)
Select @tableName = 'MyTableName'
Select @columnName = 'MyColumnName'
select @sql = o.[name] from sysobjects o
inner join syscolumns c
on o.id = c.cdefault
inner join sysobjects t
on c.id = t.id
where o.xtype = 'd'
and t.name = @tableName
and c.name = @columnName
if @sql is not null
begin
select @sql = 'Alter Table ' + @tableName + ' Drop Constraint ' + @sql + ' Alter Table ' + @tablename + ' Drop Column ' + @columnName
exec(@sql)
end
Eso solo generó 'drop table [table]'. Debe asegurarse de que en las opciones habilite los elementos dependientes de scripting, entonces funciona – rizzle
. Esta tampoco es una solución viable si necesita generar un script que otras personas puedan usar, ya que no hay garantía de que los nombres de restricción sean idénticos en múltiples sistemas . –