Wie kann ich diese berechnete Spalte in SQL Server 2008 ändern?
Habe ich eine berechnete Spalte erstellt, mit der folgenden Zeile:
alter table tbPedidos
add restricoes as (cast(case when restricaoLicenca = 1 or restricaoLote = 1 then 1 else 0 end as bit))
Aber, jetzt habe ich ändern müssen Sie in dieser Spalte für Sie so etwas wie:
alter table tbPedidos
alter column restricoes as (cast(case when restricaoLicenca = 1 or restricaoLote = 1 or restricaoValor = 1 then 1 else 0 end as bit))
Aber es funktioniert nicht. Ich versuche, die Eingabe einer anderen Bedingung der case-Anweisung, aber es funktioniert nicht.
Vielen Dank!
InformationsquelleAutor der Frage AndreMiranda | 2010-03-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie versuchen, ändern Sie eine vorhandene Spalte, die Sie nicht verwenden können, HINZUFÜGEN. Stattdessen, versuchen Sie dies:
alter table tbPedidos
alter column restricoes als
(cast(case, wenn restricaoLicenca = 1 oder restricaoLote = 1 oder restricaoValor = 1
then 1 else 0 end as bit))
EDIT: Das oben ist falsche. Wenn man eine berechnet Spalte die einzige Sache, die Sie kann tun ist, löschen und wieder neu hinzufügen.
InformationsquelleAutor der Antwort Michael Todd
Etwas wie dieses:
Quelle
InformationsquelleAutor der Antwort Leniel Maccaferri
Dies ist eine jener Situationen, wo es einfacher und schneller, benutzen Sie einfach die Diagramm feature von SQL Server Management Studio.
('')
oder etwas ähnlich harmloses (wahrscheinlich solche, die Sie nicht ändern Sie die Spalte Datentyp).Doing es auf diese Weise in SSMS werden, behalten Sie die Reihenfolge der Spalten in Ihrer Tabelle, die eine einfache
drop...add
wird nicht garantiert. Dies kann wichtig sein, sich zu einigen.InformationsquelleAutor der Antwort Tim Lehner
Als Michael Todd richtig Mitgliedstaaten in seine Antwort
Einfach hatte, diese selbst zu tun, obwohl ich wollte, um die Erhaltung der vorhandenen Daten (wie im Management Studio ausführt, wenn Sie diese Aufgabe durchführen, die über den designer).
Meine Lösung war, die zum speichern der Daten in eine temporäre Tabelle dann aktualisieren Sie die Tabelle mit den gespeicherten Werten nach würd ich gelöscht und neu erstellt die berechnete Spalte.
InformationsquelleAutor der Antwort Amicable