2010-02-11 5 views

Odpowiedz

3

NIE, W SSMS kliknij prawym przyciskiem myszy na stole i wybierz "skrypt tabeli jako", a następnie "upuść do", następnie "nowe okno", "plik ..." lub "schowek" i wygeneruje skrypt, który będzie zawierać wszystkie niezbędne kropli FKS itp

+0

To tylko wygenerowało "drop table [table]". Musisz upewnić się, że w opcjach włączasz elementy zależne od skryptów, to działa – rizzle

+0

To również nie jest możliwe rozwiązanie, jeśli potrzebujesz wygenerować skrypt, którego mogą używać inne osoby, ponieważ nie ma gwarancji, że nazwy ograniczeń będą identyczne w wielu systemach . –

5

Dla tych, którzy dostali się tu w nadziei na bardziej powszechnie obowiązujących odpowiedź

ten znajdzie ograniczenie, upuścić go, a następnie kolumnę

Dzięki i głosowanie na Tim Lentine How to find the name of a default constraint na start.

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