次のようなテーブルがあるとします。
CREATE TABLE dbo.MyTestData (testdata varchar(50) NOT NULL)
ALTER TABLE dbo.MyTestData WITH NOCHECK ADD CONSTRAINT [PK_MyTestData] PRIMARY KEY CLUSTERED (testdata)
また、重複がわかっている外部データのリストからアイテムの収集が完了したときに、「testdata」の一意のリストが必要な場合は、ストアドプロシージャの挿入を実行するときに、存在をテストするためにプロシージャを作成する必要があります。エラーを許容するだけですか?最も一般的な方法は何ですか?私はいつも存在のテストを行ってきましたが、昨夜議論していました...
CREATE PROCEDURE dbo.dmsInsertTestData @ptestdata VarChar(50)
AS
SET NOCOUNT ON
IF NOT EXISTS(SELECT testdata FROM dbo.MyTestData WHERE testdata=@ptestdata)
BEGIN
INSERT INTO dbo.MyTestData (testdata ) VALUES (@ptestdata)
END
RETURN 0
または、これを実行するときにPK違反エラーをキャプチャ/無視しますか?
CREATE PROCEDURE dbo.dmsInsertTestData @ptestdata VarChar(50)
AS
SET NOCOUNT ON
INSERT INTO dbo.MyTestData (testdata ) VALUES (@ptestdata)
RETURN 0