2016-05-20 5 views
0

Ich habe eine mittelgroße Datenbank (~ 230 Tabelle), die von Access 2010 auf SQL Server 2008 R2 migriert wird, beginnend mit einem SSMA-Lauf. Es gibt eine Reihe von Nvarchar-Spalten, die SSMA die Einschränkung "disallow_zero_length check" hinzufügt. Die Art der Daten besteht darin, dass es möglich (und sinnvoll) ist, dass in diesen Spalten Werte von Nulllänge vorliegen. Ich bin neu in SQL-Skript (aber ich lerne so schnell wie ich kann) und ich frage mich, wie man ein Skript schreiben würde, das die Tabellen durchlaufen und die unerwünschten Einschränkungen fallen lassen kann?SQL Server: Wie Sie Spalteneinschränkungen, die von SSMA erstellt wurden, ablegen

Danke!

Antwort

3

Die folgende Abfrage erzeugt eine Menge SQL-Anweisungen zum Löschen. Sie können das Ergebnis in ein SSMS Fenster kopieren/einfügen und es wie folgt ausführen

select 'alter table ' + t.name + ' drop constraint ' + c.name 
from sys.tables t 
    inner join sys.check_constraints c on c.parent_object_id = t.object_id 
where c.name like '%disallow_zero_length%' 

Ergebnis ist:

alter table t1 drop constraint disallow_zero_length_1 
alter table t2 drop constraint disallow_zero_length_2 

nur das Ergebnis Anweisungen ausführen.

Bitte als Antwort markieren, wenn dieser Beitrag Ihre Frage beantwortet.