2014-10-23 22 views
7

Ich erstellen eine neue Tabelle im SQL-Tabellen-Designer, und ich möchte, dass die "Standardwert oder Bindung" der Spalte basieren der Wert einer anderen Spalte in derselben Tabelle. Daher möchte ich, dass Spalte A den Wert eines Teilstrings von Spalte B erhält. Spalte A ist ein numeric Datentyp, Spalte B ist varchar. Im Moment habe ich folgendes, aber bekomme die Nachricht in Screenshot 2 ... stimmt hier etwas nicht? Ich hatte auch den Ausdruck CONVERT(numeric (2,0), SUBSTRING(col_b,3,2)) und das gab die gleiche Nachricht.Legen Sie den Standardwert einer Spalte basierend auf einer anderen Spalte eines anderen Datentyps

Screenshot 1:

enter image description here

Screenshot 2:

enter image description here

Antwort

9

Ich glaube nicht, dass Sie den Standardwert einer Spalte basierend auf einer anderen Spalte festlegen Verwenden der DEFAULT CONSTRAINT.

Sie können eine berechnete Spalte betrachten, wenn Sie nur einen NULL-Wert ersetzen möchten. http://msdn.microsoft.com/en-us/library/ms188300.aspx

In extremen Fällen können Sie in einem TRIGGER genau das tun, was Sie wollen. Informieren Sie sich über INSTEAD OF INSERT-Trigger. http://technet.microsoft.com/en-us/library/ms175089(v=sql.105).aspx

+0

Dank @Raj Mehr, ich habe total über berechnete Spalten vergessen. Genau das, was ich gesucht habe. –

Verwandte Themen