How to set incrementer column in SQL Server 2005 -
i have sql server table tbl_slide_master. has 1 column slide_position int. when admin wants add new slide column incremented 1 existing max value of column. , want update field.
for further info included code.
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 ) begin tran; begin try insert [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; there 1 error occurred like
msg 1046, level 15, state 1, procedure sp_insertnewslide, line 21
subqueries not allowed in context. scalar expressions allowed.
in values clause have:
select max(slide_position)+1 this not valid subquery doesn't include table name in query.
the logic incrementing field not clear me, assume want largest value in table:
select max(slide_position)+1 tbl_slide_master however, if normal identity field, should declare identity (1,1) field in table creation script , let sql server manage it..
Comments
Post a Comment