Identität-Taste auf varchar-Spalte - T-SQL

Möchte ich wissen, wenn ich erstellen Sie eine Identität (auto-Inkrement, die auf eine Varchar-Spalte. und wie kann ich es machen das ein Primärschlüssel und Fremdschlüssel erstellen Referenzen auf eine andere Tabelle.

Dies ist der code, den ich habe -

CREATE TABLE Questions(
    QuestionID int IDENTITY PRIMARY KEY, 
    QuestionNo as 'Q'+Cast(QuestionID as Varchar(10),       
    Question Varchar(200)
)

Gibt es eine Möglichkeit, die ich machen kann QuestionNo als Primary key und verweisen Sie in eine andere Tabelle (sagen, Antworten (AnswerID, QuestionNo, AnswerText)?

dies ist ein schlechtes design, tun Sie es nicht! Sie können jederzeit die Anzeige (in der Anwendung) ist der numerische Wert mit einer "F" - Präfix, aber speichern Sie es als pure int, FK zu den int. Wenn Sie möchten, können Sie FK auf zwei clumns, die int-und eine char(1) Art. es gibt keine Notwendigkeit, um es zu speichern als varchar. Ich Kämpfe mit dem alten code, hat dieselbe verrückte Konzept in es, macht alles ein hack, du wirst eventully code wie IF LEFT(...,1)='Q'... ELSE IF LEFT(...,1)='A'... oder ähnliche CASE Aussagen...
Ja.Ich bekomme Ihren Punkt. Danke.
Vereinbart. Ich hatte ein system, das hatte ein setup ähnlich wie diese - Sie wollten die zahlen, ein paar Buchstaben, die in der Datensatz-Nummer... Es wurde besser, wenn Sie die ersten Schritte mit dem system, und wollte die Suche aktualisiert, so dass es ignoriert die führenden Buchstaben...

InformationsquelleAutor Abey | 2010-09-03

Schreibe einen Kommentar