UniqueColIDを検索し、結果をテーブルに挿入してレコードを複製しています。これにより、1つの列が重複しないようにし、その列がUniqueColIDである場合を除いて、重複するエントリが必要になります。
以下は私のコードです:
CREATE PROCEDURE [dbo].[InsertDuplicateFields]
(@UniqueColID varchar(50), @IndividualID varchar(50) = null)
AS
Begin
INSERT INTO TableCollisionBegin
SELECT * FROM TableCollisionBegin
WHERE [UniqueColID] = @UniqueColID;
INSERT INTO TableCollisionDetails
SELECT * FROM TableCollisionDetails
WHERE [UniqueColID] = @UniqueColID;
INSERT INTO TableCollisionLocation
SELECT * FROM TableCollisionLocation
WHERE [UniqueColID] = @UniqueColID;
INSERT INTO TableDriver
SELECT * FROM TableDriver
WHERE [UniqueColID] = @UniqueColID;
INSERT INTO TableFollowUp
SELECT * FROM TableFollowUp
WHERE [UniqueColID] = @UniqueColID;
INSERT INTO TableOfficerLogs
SELECT * FROM TableOfficerLogs
WHERE [UniqueColID] = @UniqueColID;
INSERT INTO TablePolice
SELECT * FROM TablePolice
WHERE [UniqueColID] = @UniqueColID;
INSERT INTO TableRecVerified
SELECT * FROM TableRecVerified
WHERE [UniqueColID] = @UniqueColID;
INSERT INTO TableSignature
SELECT * FROM TableSignature
WHERE [IndividualID] = @IndividualID;
INSERT INTO TableTrailer
SELECT * FROM TableTrailer
WHERE [UniqueColID] = @UniqueColID;
INSERT INTO TableValidateLog
SELECT * FROM TableValidateLog
WHERE [UniqueColID] = @UniqueColID;
INSERT INTO TableVehicle
SELECT * FROM TableVehicle
WHERE [UniqueColID] = @UniqueColID;
INSERT INTO TableWitness
SELECT * FROM TableWitness
WHERE [UniqueColID] = @UniqueColID;
End
各テーブルには多数の列がありますが、それらはすべてUniqueColIDを共有しています。
複製を挿入するときに、すべての詳細を複製したいのですが、新しいUniqueColIDを挿入したいのですが、どうすればよいですか?
新しいUniqueColIDは、ASP.NETコードの特別なメソッドによって生成されます。2つまたは3つまたは4つの異なるUniqueColIDが必要で、残りの列は重複しています。
あなたが言ったコードの2番目のブロックを試しましたが、エラーが発生しました:
"Unknown object type 'TEMPORARY' used in a CREATE, DROP, or ALTER statement."
CREATE PROCEDURE [dbo].[AmendInsertDuplicateFields] (@UniqueColID varchar(50), @NewUniqueColID varchar(50))
AS
Begin CREATE TEMPORARY TABLE Temp AS SELECT * FROM [MVCNew].[dbo].[CollisionBegin] WHERE [UniqueColID] = @UniqueColID;
UPDATE Temp SET UniqueColID = @NewUniqueColID;
INSERT INTO [MVCNew].[dbo].[CollisionBegin] SELECT * FROM Temp;
DROP TEMPORARY TABLE IF EXISTS Temp;
End
私はちょうど考えていました....いくつかのランダムなUniqueColID値で新しいレコードを挿入することは可能ですか?しかし、他のすべての列は値「o」または「u」または「いくつかのランダムテキスト」で挿入され、次にこれに挿入しますUniqueColIDを除くUniqueColIDのすべての列を新しいレコードにしますか?そうすれば、残りの列が同じ値を持つ新しいUniqueColIDができます。
KCD私はあなたのコードブロックの両方を試しましたが、どれも機能しませんでした.. :(
@NewUniqueColIDの値という名前の列がテーブルにないため、SELECT@NewUniqueColID....がどのように機能するかを個人的にはわかりません。