テーブルにchar主キーを設定することはできますか?たとえば 'WC001'の場合は自動的に1だけインクリメントされますので、pkの次のレコードは 'WC002'となります。SQL Server:自動インクリメントchar pk
誰でも私に例を挙げることはできますか?
おかげで簡単に
テーブルにchar主キーを設定することはできますか?たとえば 'WC001'の場合は自動的に1だけインクリメントされますので、pkの次のレコードは 'WC002'となります。SQL Server:自動インクリメントchar pk
誰でも私に例を挙げることはできますか?
おかげで簡単に
ない - しかし、あなたは、通常のINT IDENTITY
自動インクリメントの数値IDを持っているし、その後、計算列(SQL Server 2005およびそれ以降の)持続定義することができ - のようなもの:
CREATE TABLE dbo.YourTable
(ID INT IDENTITY(1,1),
CharID AS 'WC' + RIGHT('000' + CAST(ID AS VARCHAR(3)), 3) PERSISTED,
CONSTRAINT PK_YourTable PRIMARY KEY(CharID)
)
は、このテーブルに値を挿入しますID
列を1, 2, 3, 4, 5,
.....、CharID
列を自動的にWC001
、WC002
、WC003
などとなるようにします。
これは永続化された計算列なので、値は常に最新であり、インデックス(プライマリキーと同様)を置くことさえできます。
ないが、あなたはこのような何かが必要な場合は、あなたの鍵のアルファと数字の部分を壊すからあなたを止めるものは何もありません。 WC
部分をAKey
に、数字をNKey
とし、Nkey
を自動入力します。
あなたがようview
でそれを公開することができますしたい場合:
SELECT AKey + CAST(nkey as varchar) as 'Key'
...
効率的に同時実行の問題を解決するに関わる非常に多くの要因があるので、うまく機能しません。
SQL Server 2012では、より複雑なIDフィールドのサポートが追加されます。
直接Id IDENTITY(1,1) INT
という名前の別の列を作成し、希望する列をId
と0の書式化された数値で構成される計算列として作成することをお勧めします。
+1重要な部分は、増分する整数です。残りは、ORMまたはソフトウェアの報告層(IMHO)に属するすべてのプレゼンテーションロジックです。 – Yuck