我很难理解为什么下面的SQL不起作用。我发表了一条评论(----------很高兴在这里),这是我解析/保存商店进行时SQL Server将接受代码的地方。
下面的一点,它不会。对SQL来说还是新手,所以任何帮助都会很棒。
我收到的错误是,关键字'ELSE'附近的语法不正确。 “ELSE”是我在上面提到的评论中的一个。
我还不明白的是,如果我改变IF和BEGIN轮次,SQL接受它(下面)?我认为ELSE IF是不可能的。
----------Fine up to Here
ELSE
IF (@GrabTypeID = '')
BEGIN
****************************************
Code below
**************************************
IF (@GrabtypeID NOT IN (SELECT GRABTYPEID FROM Mytable) AND @GrabtypeID != '') OR
(@Variable1 NOT IN (SELECT ID FROM Mytable) AND @Variable1 !='')
BEGIN
SELECT @ErrorMessage ='The GrabTypeID or the ID is an invalid value'
RAISERROR (@ErrorMessage, 16, 1)
PRINT 'Invalid Parameters passed Through'
RETURN
END
ELSE
BEGIN
IF (@GrabtypeID ! ='')
TRUNCATE TABLE Datatable1
TRUNCATE TABLE Datatable2
INSERT Datatable1
SELECT * FROM Referencetable1
INSERT Datatable2
SELECT * FROM REFERENCETABLE2
END
----------Fine up to Here
ELSE
BEGIN
IF (@GrabTypeID = '')
TRUNCATE TABLE Datatable1
TRUNCATE TABLE Datatable2
INSERT Datatable1
SELECT * FROM REFERENCETABLE1 WHERE CATEGORY = 4
INSERT Datatable2
SELECT * FROM REFERENCETABLE2 WHERE CATEGORY = 4
END
GO
答案 0 :(得分:2)
你的格式有点奇怪。你可以按照它的方式使它工作,但我认为最好使用这种格式:
IF expression
BEGIN
SELECT
END
ELSE IF expression
BEGIN
SELECT
END
ELSE IF expression
BEGIN
SELECT
END
具体来说,改变一下:
ELSE
BEGIN
IF (@GrabtypeID ! ='')
对此(两地):
ELSE IF (@GrabtypeID ! ='')
BEGIN