вставить хранимую процедуру, проверить, существует ли строка - PullRequest
1 голос
/ 11 марта 2011

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

 create PROCEDURE [dbo].[directway]
           @tour as varchar(50),
           @tourname as varchar(50),
           @taskname as varchar(50) ,
           @deptdate as varchar(50),
           @tasktype as varchar(50)  ,
           @desc as varchar(50) ,
           @duedate as varchar(50) ,
           @agent as varchar(50),
           @graceperiod as varchar(50)
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;


INSERT INTO dashboardtasks
           ([tour]
           ,[tourname]
           ,[taskname]
           ,[deptdate]
           ,[tasktype]
           ,[desc]
           ,[duedate]
           ,[agent]
           ,[graceperiod]

     VALUES (@tour,
           @tourname,
           @taskname ,
           @deptdate,
           @tasktype  ,
           @desc ,
           @duedate ,
           @agent ,
           @graceperiod
                  )
WHERE  NOT EXISTS(SELECT *
                  FROM   dashboardtasks
                  WHERE  ( @tour = dashboardtasks.tour
                           and @taskname = dashboardtasks.taskname
                           and @deptdate = dashboardtasks.deptdate
                           and @duedate = dashboardtasks.duedate
                           and  @tourname = dashboardtasks.tourname
                         and @agent = dashboardtasks.agent
                         )
)  

END

1 Ответ

5 голосов
/ 11 марта 2011

Вы просто немного ошиблись

IF NOT EXISTS(SELECT *
                  FROM   dashboardtasks
                  WHERE  ( @tour = dashboardtasks.tour
                           and @taskname = dashboardtasks.taskname
                           and @deptdate = dashboardtasks.deptdate
                           and @duedate = dashboardtasks.duedate
                           and  @tourname = dashboardtasks.tourname
                         and @agent = dashboardtasks.agent
                         )
)  
BEGIN
  INSERT INTO dashboardtasks
           ([tour]
           ,[tourname]
           ,[taskname]
           ,[deptdate]
           ,[tasktype]
           ,[desc]
           ,[duedate]
           ,[agent]
           ,[graceperiod])

     VALUES (@tour,
           @tourname,
           @taskname ,
           @deptdate,
           @tasktype  ,
           @desc ,
           @duedate ,
           @agent ,
           @graceperiod
                  )

END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...