Varchar () - Spalte auf bestimmte Werte beschränken?
Gibt es eine Möglichkeit zu geben, zum Beispiel 4 verschiedene Werte, die für eine varchar-Spalte in MS SQL Server 2008?
Zum Beispiel brauche ich eine Spalte mit der Bezeichnung Frequenz (varchar) , akzeptiert nur 'Täglich', 'Wöchentlich', 'Monatlich', 'Jährlich' als mögliche Werte
Ist dies möglich, legen Sie in der SQL Server Management Studio beim erstellen der Tabelle?
InformationsquelleAutor der Frage Adam | 2010-03-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie schon angeschaut hinzufügen eines
check constraint
auf die Spalte, die würde, Werte einschränken? So etwas wie:InformationsquelleAutor der Antwort Ashish Gupta
Du willst ein check-Einschränkung.
Du willst so etwas wie:
Können Sie auch umsetzen, check-Einschränkungen mit skalaren Funktionen, wie beschrieben in den link oben, das ist, wie ich es vorziehen, es zu tun.
InformationsquelleAutor der Antwort Michael Petrotta
Persönlich würde ich code es als tinyint und:
Gründe:
Dauert es im Durchschnitt 8 bytes zum speichern von text -, 1 byte für ein Wert vom Datentyp tinyint. Über Millionen von Zeilen, dies wird einen Unterschied machen.
Was über die Sortierung? Ist "Täglich" und "TÄGLICH"? Es braucht Ressourcen, um diese Art von Vergleich.
Schließlich, was passiert, wenn Sie hinzufügen möchten, "Zwei -" oder "Stündlich"? Dies erfordert ein schema ändern, wenn Sie könnten, fügen Sie einfach neue Zeilen zu einer lookup-Tabelle.
InformationsquelleAutor der Antwort gbn
Wenn Sie Bearbeiten eine Tabelle
Rechte Maustaste -> Check-Einschränkungen -> Hinzufügen -> Typ so etwas wie
Frequency IN ('Daily', 'Weekly', 'Monthly', 'Yearly')
im expression-Feld und eine gute constraint-Namen (Name) Feld.Sie sind fertig.
InformationsquelleAutor der Antwort Denis K