0
我在努力理解爲什麼下面的SQL不起作用。我已經提出了一個註釋(---------- Fine到這裏),這是SQL Server在解析/保存Store過程時接受代碼的地方。SQL IF/ELSE聲明
下面的那一點,它不會採取。還是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
您在IF關鍵字後缺少BEGIN標記。 – Stavr00