1

大きな質問です。10 桁の学生番号があり、3 つの異なるデータベース テーブルから取得されています。たとえば、学生番号は対応する値を持つ 0012011234 になります。

0012 = school id
01 = class id
1234 = student id 

このデータベースを自動インクリメントに設定し、これらの学生番号を作成する方法を教えてもらえますか? 現在、3 つの異なるデータベース テーブル (学校、教室、学生) があり、それらはすべて一意である必要があります。私は C# で作業していますが、教室と生徒を学校に関連付けて自動インクリメントする方法を理解するのに苦労しています。何か助けはありますか?

4

3 に答える 3

1

Though this is not a good method like D Stanley said, I would say you could write a scalar-valued function to that takes the top values from these tables and combines to form your desired value

CREATE FUNCTION GetNewID
(

)
RETURNS NVarChar(15)
AS
BEGIN
    -- Declare the return variable here
    DECLARE @result NVarChar(15)

    DECLARE  @SchoolId int
            ,@ClassId int
            ,@StudentId int 

    SELECT TOP 1 @SchoolId=ID FROM SchoolTable
    SELECT TOP 1 @StudentId=ID FROM StudentTable
    SELECT TOP 1 @ClassId=ID FROM ClassTable

    SET @RESULT = CONVERT(NVARCHAR,(@SchoolId+1)) + CONVERT(NVARCHAR,(@ClassId+1)) + CONVERT(NVARCHAR,(@StudentId+1)) 
    -- Return the result of the function
    RETURN @result

Then use this function dbo.GetNewID() to get the latest ID

于 2013-08-21T03:54:50.923 に答える