2010-02-11 16 views

Respuesta

3

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.

+0

Eso solo generó 'drop table [table]'. Debe asegurarse de que en las opciones habilite los elementos dependientes de scripting, entonces funciona – rizzle

+0

. 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 . –

5

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 
Cuestiones relacionadas