sql >> データベース >  >> RDS >> Sqlserver

nvarcharを使用してSQLサーバーに自動インクリメント主キーを追加するにはどうすればよいですか?

    これを直接行うことはできません - できること すべきこと:

    • 数値部分を処理する自動インクリメント列を作成する
    • 計算列を追加する 文字列の接頭辞と数字を連結したもの

    次のようにしてみてください:

    CREATE TABLE dbo.YourTable
        (ID INT IDENTITY(1,1) NOT NULL,
         StringPrefix NVARCHAR(10) NOT NULL,
         IDandPrefix AS ISNULL(StringPrefix + CAST(ID AS NVARCHAR(10)), 'X') PERSISTED
        )
    

    次のように行を挿入すると:

    INSERT INTO dbo.YourTable(StringPrefix) VALUES('A'), ('B'), ('A')
    

    次のような行を取得する必要があります:

    ID   StringPrefix   IDandPrefix
     1        A             A1
     2        B             B2
     3        A             A3
    

    そして、その IDandPrefix で主キーを定義できます コラムも:

    ALTER TABLE dbo.YourTable 
    ADD CONSTRAINT PK_YourTable PRIMARY KEY CLUSTERED (IDandPrefix)
    


    1. 複数の一般的なテーブル式を結合する

    2. FUNCTION構文エラー

    3. AndroidとPhonegapを使用したSQLiteデータベースのストレージ

    4. MySQLルートパスワードを見つける方法