SQL Server テーブルがありますtbl_Slide_master
。slide_position
として1 つの列がありますint
。ただし、管理者が新しいスライドを追加する場合、この列はその列の既存の最大値から 1 ずつ増加します。また、このフィールドを更新したいだけです。
詳細については、このコードを含めました。
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_InsertNewSlide]
(
@Header_text varchar(25),
@ImageName varchar(50),
@Img_height int,
@Img_width int,
@Para_text varchar(520),
@NewId INT OUTPUT
)
AS
BEGIN TRAN;
BEGIN TRY
INSERT INTO [OmStocks].[dbo].[tbl_Slide_master]
([Header_text]
,[ImageName]
,[Img_height]
,[Img_width]
,[Para_text]
,[slide_position]
)
VALUES
(@Header_text,@ImageName,@Img_height,@Img_width,@Para_text,SELECT MAX(slide_position)+1)
SET @NewId= SCOPE_IDENTITY()
COMMIT TRAN;
END TRY
BEGIN CATCH
ROLLBACK TRAN;
DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int;
SELECT @ErrMsg = ERROR_MESSAGE(), @ErrSeverity = ERROR_SEVERITY();
RAISERROR(@ErrMsg, @ErrSeverity, 1);
END CATCH;
のようなエラーが1つ発生しました
メッセージ 1046、レベル 15、状態 1、プロシージャ sp_InsertNewSlide、行 21
サブクエリは、このコンテキストでは許可されていません。スカラー式のみが許可されます。