Учитывая таблицу, такую как:
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