Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как в update динамически указать имя поля ! / 4 сообщений из 4, страница 1 из 1
28.11.2006, 11:03
    #34159953
NED D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в update динамически указать имя поля !
Народ подскажите !
ASA 8.0 пишу процедуру в которой нужно при update динамически указывать имя поля !
Пример:

declare @SN varchar(20)
declare @SNL varchar(20)
select @SN=rtrim('SN'+ltrim(str(@ServisesType)))
select @SNL=rtrim('SNL'+ltrim(str(@ServisesType)))
update inf.ChargeResidents as c set
@SN = 1,
@SNL= 2
Ругает меня : Invalid Statement !
Как это можно обойти ?
...
Рейтинг: 0 / 0
28.11.2006, 11:19
    #34160028
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в update динамически указать имя поля !
NED D wrote:

> ASA 8.0 пишу процедуру в которой нужно при update динамически указывать
> имя поля !
> Пример:
>
> declare @SN varchar(20)
> declare @SNL varchar(20)
> select @SN=rtrim('SN'+ltrim(str(@ServisesType)))
> select @SNL=rtrim('SNL'+ltrim(str(@ServisesType)))
> update inf.ChargeResidents as c set
> @SN = 1,
> @SNL= 2
> Ругает меня : Invalid Statement !

Естессно. Ты написал какой-то шизофренический бред.

> Как это можно обойти ?

Включив мозги.

--------------------------------------------------
declare @sql char(1000);
--
set @sql = 'update inf.ChargeResidents as c set ' ||
rtrim('SN'+ltrim(str(@ServisesType))) || '=1, ' ||
rtrim('SNL'+ltrim(str(@ServisesType))) || = '=2' ;

execute immediate @sql ;
--------------------------------------------------

Можно обойтись без промежуточной переменной, но с ней удобнее отлаживать.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
28.11.2006, 12:54
    #34160479
NED D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в update динамически указать имя поля !
не работает
вставляю в процедуру одну строчку :
execute immediate 'update inf.ChargeResidents set SNL1 = 1'
...
Рейтинг: 0 / 0
28.11.2006, 13:03
    #34160516
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в update динамически указать имя поля !
NED D wrote:

> не работает

Я бы не стал советовать то, что заведомо не работает ;).

> вставляю в процедуру одну строчку :
> execute immediate 'update inf.ChargeResidents set SNL1 = 1'

Юзера INF у меня нет, поэтому вместо него DBA.

----------------------------------------------------------
create table dba.ChargeResidents
(
snl1 integer not null
)
;

insert into dba.ChargeResidents values (0) ;

create procedure dba.Test()
begin
execute immediate 'update dba.ChargeResidents set SNL1 = 1'
end ;
----------------------------------------------------------
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как в update динамически указать имя поля ! / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]