2009-09-18 3 views
0

Я использую сервер Sql 2005.Вставьте только в том случае, если записей нет в таблице

Я должен предоставить сценарий вставки SQL для моего клиента. Но прежде чем вставить в таблицу. Я хочу проверить, существует ли эта запись в таблице, она не должна вставляться.

Ниже приведены вставки запроса

INSERT INTO [UserPoint].[dbo].[tblStatus]([Type],[Name],[DisplayOrder]) VALUES (UsageLevel,High,1) 
INSERT INTO [UserPoint].[dbo].[tblStatus]([Type],[Name],[DisplayOrder]) VALUES (UsageLevel,Medium,2) 
INSERT INTO [UserPoint].[dbo].[tblStatus]([Type],[Name],[DisplayOrder]) VALUES (UsageLevel,Low,3) 

Таблица tblStatus имеет четыре поля ID, тип, имя, displayorder. В которой автогенерируется ID.

Пожалуйста, помогите!

Спасибо.

С наилучшими пожеланиями, MS

ответ

1

Самого простым способом это не существует утверждение, что-то вроде должны работать для вас

примечания Если я не буду недопонимания вашей схемы, я думаю, что вы пропали без вести некоторые кавычки имя и тип столбцов, я включил их ниже

if not exists (
    SELECT NULL as test FROM dbo.tblStatus 
    WHERE [Type] = 'UsageLevel' AND [Name] = 'High' 
) 
BEGIN 
    INSERT INTO [UserPoint].[dbo].[tblStatus]([Type],[Name],[DisplayOrder]) 
    VALUES ('UsageLevel','High',1) 
END 

if not exists (
    SELECT NULL as test FROM dbo.tblStatus 
    WHERE [Type] = 'UsageLevel' AND [Name] = 'Medium' 
) 
BEGIN 
    INSERT INTO [UserPoint].[dbo].[tblStatus]([Type],[Name],[DisplayOrder]) 
    VALUES ('UsageLevel','Medium',2) 
END 

if not exists (
    SELECT NULL as test FROM dbo.tblStatus 
    WHERE [Type] = 'UsageLevel' AND [Name] = 'Low' 
) 
BEGIN 
    INSERT INTO [UserPoint].[dbo].[tblStatus]([Type],[Name],[DisplayOrder]) 
    VALUES ('UsageLevel','Low',3) 
END 
+0

Спасибо, Dude! для вашей помощи! –

0

Создать уникальный индекс на основе элементов, которые вы не хотите, чтобы вставить, вы можете иметь м уникальный индекс уникальной колонки, который должен помочь. И если вы рассматриваете этот сценарий как временное и одноразовое использование, тогда вы можете позже создать индекс и удалить индекс. Этот индекс предотвратит повторную запись существующих элементов.

Смежные вопросы