create procedure dbo.move_pos
(
@id int,
@tbl varchar(50)
)
as
begin
declare @pos int
exec('select '[email protected]+'=POS from '[email protected]+' where id='[email protected])
exec('update '[email protected]+' set POS=POS+1 where POS<'[email protected])
end
В приведенном выше столбце процедуры POS имеет тип int. Но когда я м выполнения этой процедуры он показывает следующее сообщение об ошибке:Динамическое имя таблицы и параметры в SQL-хранимой процедуре
Msg 102, Level 15, State 1, Line 1
Неправильный синтаксис около '='.
Я использую SQL SERVER 2012. Нужна помощь. Заранее спасибо !!!
выберите '+ @ позы +' = POS от '+ @ TBL +', где идентификатор = '+ @ идентификатор WHT и хочет сделать с @ pos –
попробуйте это объявить запрос varchar (100); set query = 'select' + cast (pos as varchar) + 'from' + tbl + 'где id =' + CAST (id AS varchar) exec (query) add @before query, id, pos –
@YashveerSingh I m пытается переместить элемент сверху, поэтому я использую pos. – SUPU