powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / И снова RecNo
14 сообщений из 14, страница 1 из 1
И снова RecNo
    #32313566
Фотография Desil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Колупаюсь с RecNo уже почти месяц. Нашла в форуме кусок кода, который должен по идее решать все мои проблемы (возвращать номер записи в наборе данных):

Код: plaintext
1.
2.
3.
set nocount on
select identity(int, 1 , 1 ) Number, * into #tmp from Table ..... order by ....
select * from #tmp order by Number
drop table #tmp


Вот только одно но - среди возвр. полей у меня уже есть автоинкрементные и SQL'ина ругается:
Код: plaintext
1.
2.
Cannot add identity column, using the SELECT INTO statement, 
to table '#tmp', which already has column 'Моя_колонка_ID' that inherits 
the identity property.


Никто не знает, чего делать?
...
Рейтинг: 0 / 0
И снова RecNo
    #32313571
olga1999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какая СУБД. Если Oracle, то там для этого существует ROWNUM.
...
Рейтинг: 0 / 0
И снова RecNo
    #32313572
Фотография Desil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СУБД - MSSQL, всеми любимый...
...
Рейтинг: 0 / 0
И снова RecNo
    #32313610
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А поконкретней можно ??
если есть автоинкременая колонка зачем сного что то химичить ?

и что значит возрашать номер записи ?
что конкретно хотите ?
...
Рейтинг: 0 / 0
И снова RecNo
    #32313666
Фотография daw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Desil писал:Никто не знает, чего делать?
не поленитесь создать временную табличку явно и сделать
insert into #tmp
(...)
select
...
...
Рейтинг: 0 / 0
И снова RecNo
    #32313696
selena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а какой доступ к базе используете???
...
Рейтинг: 0 / 0
И снова RecNo
    #32313775
Фотография Desil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь пишу так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE TABLE #tmp
(
 Number int IDENTITY( 1 , 1 ),
 ID int
)

select TableID
into  #tmp
from Table

select * from #tmp order by Number

drop table #tmp


На что мне говорят:

Код: plaintext
There is already an object named '#tmp' in the database.


???????????????????
...
Рейтинг: 0 / 0
И снова RecNo
    #32313793
Rostyk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выполни отдельно
Код: plaintext
drop table #tmp
...
Рейтинг: 0 / 0
И снова RecNo
    #32313818
Фотография Desil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ни какой реакции
...
Рейтинг: 0 / 0
И снова RecNo
    #32313854
Rostyk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После drop'a #tmp
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE TABLE #tmp
(
 Number int IDENTITY( 1 , 1 ),
 ID int
)

select TableID
into  #tmp
from Table

select * from #tmp order by Number

drop table #tmp
не проходит ?
...
Рейтинг: 0 / 0
И снова RecNo
    #32313903
Фотография Luchkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE #tmp ( Number int IDENTITY( 1 , 1 ), ID int )

insert #tmp (ID) 
select TableID
from Table

select * from #tmp order by Number

drop table #tmp

а так?
...
Рейтинг: 0 / 0
И снова RecNo
    #32313907
Фотография Белов Владимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так

if object_id('tempdb..#tmp')
drop table #tmp
create table #tmp ...
...
Рейтинг: 0 / 0
И снова RecNo
    #32314005
Фотография daw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык, не надо делать select into ... Делайте insert into ... select ...
...
Рейтинг: 0 / 0
И снова RecNo
    #32314148
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Desi писал:
Вот только одно но - среди возвр. полей у меня уже есть автоинкрементные и SQL'ина ругается:
Cannot add identity column, using the SELECT INTO statement,
to table '#tmp', which already has column 'Моя_колонка_ID' that inherits
the identity property.


В этом случае надо делать явное преобразование identity-поля в int или явно указывать все нужные поля, кроме identity-поля. В таком запросе нельзя использовать шаблон *.
Код: plaintext
1.
2.
3.
4.
5.
set nocount on
select identity(int, 1 , 1 ) Number, convert(int,identity_field) as Field0, field1, fileld2 into #tmp 
from Table ..... order by ....
select * from #tmp order by Number
drop table #tmp
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / И снова RecNo
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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