私はこのストアドプロシージャを書きました:
CREATE PROCEDURE [dbo].[spGetCuisines]
@RestaurantID INT ,
@CuisineID NVARCHAR(200)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sql NVARCHAR(MAX)
SET @sql = 'SELECT CuisineID, CuisineName
FROM dbo.Cuisine1
WHERE CuisineID IN (
SELECT dbo.Dishes1.CuisineID
FROM dbo.Dishes1
WHERE DishID IN ( SELECT DishID
FROM dbo.RestaurantDish
WHERE RestaurantID = '
+ CAST(@RestaurantID AS NVARCHAR(MAX)) + ' ) )'
IF @CuisineID <> ''
BEGIN
SET @sql += 'AND Cuisine1.CuisineID IN('
+ CAST(@CuisineID AS NVARCHAR(MAX)) +')'
END
EXECUTE sp_executesql @sql;
END
以下にリストされている列を持つ3つのテーブルを使用しています。
料理1
DishID
DishName
CuisineID
Price
料理1
CuisineID
CuisineName
Type
DateCreated
DateModified
DateDeleted
レストラン料理
RestaurantDishID
RestaurantID
DishID
しかし、私のストアドプロシージャは、次の行で構文エラーを出します:
SET @sql += 'AND Cuisine1.CuisineID IN('+ CAST(@CuisineID AS NVARCHAR(MAX)) +')'
それは言います:
「+」付近の構文が正しくありません
誰かが私を案内できますか?SQL Server のバージョンはこれと関係がありますか?