2011-03-11 103 views
1

我正在使用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 

回答

5

你剛有點以錯誤的方式

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 
+0

謝謝你,但是爲什麼我還在 – MyHeadHurts 2011-03-11 14:59:02

+1

你'後缺少一個右括號價值得到一個錯誤,[ graceperiod]'和關鍵字'values'之前。 – 2011-03-11 14:59:06

+0

謝謝你們! – MyHeadHurts 2011-03-11 15:01:54