2017-02-02 4 views
1

Für die folgende gespeicherte Prozedur, bekomme ich einen Fehlerfalsche Syntax in der Nähe von ‚end‘

falsche Syntax in der Nähe von ‚end‘

Nach bestem Wissen und Gewissen ich das Recht habe, beginnen und enden Stichworte. Ich bin mir nicht sicher, wo der Fehler liegt. Ich habe die vorherigen Fragen ebenfalls überprüft, konnte den Fehler jedoch nicht beheben. Danke für jede Hilfe!

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

ein 'end' für den Hauptblock fehlt. –

+0

Es war direkt vor meinen Augen und ich habe es vermisst .. !! Vielen Dank. –

Antwort

3

Sie benötigen eine andere end vor 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

Es war direkt vor meinen Augen und ich habe es vermisst .. !! Vielen Dank. –

+0

@ananthreddy Glücklich zu helfen! – SqlZim

Verwandte Themen