SQL 2000 で複合キーを作成することは可能ですか?
code id
abc 1
abc 2
abc 3
def 1
def 2
ghi 1
id は、コードが変更されるたびにカウントを再開します。テーブルを作成するか、他の SELECT ステートメントのトリックを使用して、番号付けを正確に同じにする必要があります。
SQL Server 2000 でこれを行う方法
クエリのヘルプが必要
SQL 2000 で複合キーを作成することは可能ですか?
code id
abc 1
abc 2
abc 3
def 1
def 2
ghi 1
id は、コードが変更されるたびにカウントを再開します。テーブルを作成するか、他の SELECT ステートメントのトリックを使用して、番号付けを正確に同じにする必要があります。
SQL Server 2000 でこれを行う方法
クエリのヘルプが必要
これは、実行時にこのデータを取得する 1 つの方法です。実際にテーブルに格納する必要はありません。これは、試して維持するのが非常に面倒です。ここでは #temp テーブルを使用しています#a
が、永続テーブルのふりをすることができます。現状では、これは最大 256 個の重複をサポートします。さらに必要な場合は、調整できます。
CREATE TABLE #a(code VARCHAR(32));
INSERT #a SELECT 'abc'
UNION ALL SELECT 'abc'
UNION ALL SELECT 'abc'
UNION ALL SELECT 'def'
UNION ALL SELECT 'def'
UNION ALL SELECT 'ghi';
GO
SELECT x.code, id = y.number FROM
(
SELECT code, maxid = COUNT(*) FROM #a GROUP BY code
) AS x
CROSS JOIN
(
SELECT DISTINCT number FROM master..spt_values
WHERE number BETWEEN 1 AND 256
) AS y
WHERE x.maxid >= y.number;
DROP TABLE #a;
これを試すことができます
INSERT INTO TABLENAME (code, id) VALUES( 'code',
(Select ISNULL(MAX(id), 0) FROM TableName where code = 'code')+1)