2017-02-02 4 views
1

Для следующей хранимой процедуры, я получаю сообщение об ошибкеНеправильный синтаксис около «конец»

Неправильный синтаксис около «конец»

Насколько мне известно, я имею право начинать и заканчивать теги. Я не уверен, где ошибка. Я также проверил предыдущие вопросы, но не смог исправить ошибку. Спасибо за любую помощь!

USE CONTACT 
GO 

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 

CREATE PROCEDURE [dbo].[Pref] 
    (@userName VARCHAR(50), 
    @ComputerName VARCHAR(50), 
    @PrinterDescription VARCHAR(255), 
    @PrinterLocation VARCHAR(255), 
    @Print_DuplexYN TINYINT, 
    @DateRecChanged datetime 
    ) 
AS 
BEGIN 
    DECLARE @userID INT; 

    SELECT @userID = User_ID 
    FROM tblUser 
    WHERE Login_ID = @userName 

    DECLARE @MyCount INT 

    SELECT @MyCount = COUNT(UserName) 
    FROM PrinterPrefs 
    WHERE UserName = @UserName AND ComputerName = @ComputerName 

    IF @MyCount = 0 
    BEGIN 
     INSERT INTO PrinterPrefs (UserName, ComputerName, PrinterDescription, PrinterLocation, Print_DuplexYN, DateRecChanged) 
     VALUES (@UserName, @ComputerName, @PrinterDescription, @PrinterLocation, @Print_DuplexYN, getdate(), @UserName) 
    END 
    ELSE 
    BEGIN 
     UPDATE PrinterPrefs 
     SET PrinterDescription = @PrinterDescription, 
      PrinterLocation = @PrinterLocation, 
      Print_DuplexYN = @Print_DuplexYN, 
      DateRecChanged = getdate(), 
      UserName = @UserName 
     WHERE 
      UserName = @UserName AND 
      ComputerName = @ComputerName 
    END 
GO 
+4

отсутствует «конец» для основного блока. –

+0

Это было прямо перед моими глазами, и я пропустил это. !! Спасибо. –

ответ

3

Вам нужен другой end перед go.

USE CONTACT 
    GO 
    SET ANSI_NULLS ON 
    GO 
    SET QUOTED_IDENTIFIER ON 
    GO 
CREATE PROCEDURE [dbo].[Pref] (
    @userName VARCHAR(50) 
    ,@ComputerName VARCHAR(50) 
    ,@PrinterDescription VARCHAR(255) 
    ,@PrinterLocation VARCHAR(255) 
    ,@Print_DuplexYN TINYINT 
    ,@DateRecChanged datetime 
    ) 
AS 
BEGIN 
    DECLARE @userID INT; 
    SELECT @userID = User_ID 
    FROM tblUser 
    WHERE Login_ID = @userName; 

    declare @MyCount int; 
    select @MyCount = count(UserName) 
    from PrinterPrefs 
    where UserName = @UserName 
     and ComputerName = @ComputerName; 

    if @MyCount = 0 
    begin 
     INSERT into PrinterPrefs 
     (UserName, 
     ComputerName, 
     PrinterDescription, 
     PrinterLocation, 
     Print_DuplexYN, 
     DateRecChanged) 
     VALUES 
     (@UserName, 
     @ComputerName, 
     @PrinterDescription, 
     @PrinterLocation, 
     @Print_DuplexYN, 
     getdate(), 
     @UserName) 
    end 
    else 
    begin 
     UPDATE PrinterPrefs 
     SET 
      PrinterDescription = @PrinterDescription, 
      PrinterLocation = @PrinterLocation, 
      Print_DuplexYN [email protected]_DuplexYN, 
      DateRecChanged = getdate(), 
      UserName = @UserName 
     WHERE 
      UserName = @UserName and 
      ComputerName = @ComputerName; 
    end 
end --<-- add this 
GO 
+0

Это было прямо перед моими глазами, и я пропустил это. !! Спасибо. –

+0

@ananthreddy Рад помочь! – SqlZim