Ich versuche, eine Sicherungskopie einer Microsoft Dynamics NAV-Datenbank wiederherzustellen, die leider fehlschlägt, da sie versucht, einen CLUSTERED KEY für die Tabellen festzulegen, die bereits gruppierte Schlüssel enthalten.SQL Server 2005 - SQL-Anweisung zum Entfernen von Clusterschlüsseln aus Tabellen basierend auf einer Abfrage von Tabellennamen?
In NAV erhält jedes Unternehmen in der Datenbank eine eigene Kopie der Tabellen mit dem Präfix des Firmennamens, z. COMPANY$User_Setup
. Ich möchte daher jeden geclusterten Schlüssel für eine bestimmte Firma entfernen, dh an jeder Tabelle, deren Name mit 'Firma $' beginnt.
Hat jemand eine SQL-Anweisung, die dies ausführen könnte?
Vielen Dank im Voraus!
Mit freundlichen Grüßen, Martin
Das hilft, danke. Ich denke, ich kann damit anfangen. –
Das wird es nicht tun - Sie entfernen nur die Einschränkung für den Primärschlüssel - das lässt den Index noch nicht fallen. Während der Primärschlüssel in der Regel der gruppierte Index ist, ist dies keine Voraussetzung - es könnten zwei verschiedene Indizes sein. Und noch mehr: Der Primärschlüssel (wenn es auch der Clustered-Index ist) wird normalerweise auch von Fremdschlüsselbeziehungen referenziert - also müssten diese auch gelöscht werden, bevor Sie den Primärschlüssel-Index fallen lassen können. –
Wenn Sie normalerweise die PK-Einschränkung löschen, wird auch der zugehörige Index gelöscht. Allerdings gebe ich zu, einige Annahmen zu treffen, um es einfach zu halten ... aber um die Basis einer Lösung zu veranschaulichen, gibt es einen Ausgangspunkt. –