Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Номерация строк / 15 сообщений из 15, страница 1 из 1
15.01.2001, 16:46
    #32001536
NetMinion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Номерация строк
Запрос:
INSERT INTO Table VALUES ((SELECT MAX ID FROM Table) + 1,'Information') или что то в это м роде...
Как заставить этот запрос работать?

ПОМОГИТЕ ПЛЗ)
...
Рейтинг: 0 / 0
15.01.2001, 16:46
    #32001537
NetMinion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Номерация строк
Запрос:
INSERT INTO Table VALUES ((SELECT MAX ID FROM Table) + 1,'Information') или что то в это м роде...
Как заставить этот запрос работать?

ПОМОГИТЕ ПЛЗ)
...
Рейтинг: 0 / 0
15.01.2001, 17:02
    #32001540
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Номерация строк
Ну такой-то запрос работать не заставить

Надо немного попроще просто написать

create table #table(ID int, inf varchar(200))
insert #table values(0, 'empty')

INSERT INTO #table SELECT MAX(ID)+1,'Information' FROM #table

select * from #table

А я сообще обычно values не пишу. Вместо
insert #table values(0, 'empty')
можно написать
insert #table select 0, 'empty'
...
Рейтинг: 0 / 0
15.01.2001, 17:06
    #32001541
Staple
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Номерация строк
Declare @id int
Select @id = Max(Id) From T1
Insert Into T1 Values (@id,'Information')

А вообще-то не пытаешься ли ты изобрести велосипед? Мне кажется, что ты хочешь сделать то, что в SQL Server'е реализуется через Identity (посмотри Help по Create Table)
...
Рейтинг: 0 / 0
15.01.2001, 17:38
    #32001543
NetMinion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Номерация строк
Спасибо Серж
...
Рейтинг: 0 / 0
16.01.2001, 05:05
    #32001548
TolSh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Номерация строк
Способ нумерации строк предложенный SergSuper интересен , только вот не лишен некоторых неудобств в использовании. Скажем если в таблице полей 30 , а на данном этапе нужно заполнить только 5(все остальные заполняются default) - как тогда написать Insert ?
...
Рейтинг: 0 / 0
16.01.2001, 11:27
    #32001555
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Номерация строк
"Марксизм - это не догма, а руководство к действию"
В.И.Ленин

Это я к тому: идея дадена - а вы уж как-нибудь развивайте сами.
По 5 записей так конечно не вставишь. Но...
1. А не проще ли использовать IDENTITY ?
2. Если IDENTITY действительно не подходит(допустим нужно что бы была нумерация без "дырок", а с IDENTITY они при удалении записей появяться) то наверное можно придумать обходные варианты. Например вставлять какое-нибудь предопределённое значение (например "-1" или "null"), а потом в цикле их апдейтить. Это можно делать в триггере. Тут реализация зависит уже от конкретной задачи.
3. А подумайте - может вам нумерация и вообще не нужна?

С приветом Сергей
sergsuper@mail.ru
...
Рейтинг: 0 / 0
18.01.2001, 20:50
    #32001620
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Номерация строк
Идея не моя. Получил по рассылки с сайта citycat.ru (MS SQL SERVER - дело тонкое).
declare @I int
set @I=0
update Table set ID=@I=@I+1
В BOL такого синтаксиса я не нашел. Попробовал - работает!
Нумерует записи, правда те, которые уже имеются в таблице. Успехов.
...
Рейтинг: 0 / 0
19.01.2001, 10:34
    #32001623
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Номерация строк
2 Garya - всё-таки попробуй - не работает же

Правильно писать:
declare @I int
set @I=0
update Table set @I=ID=@I+1

Хотя я обычно писал:
declare @I int
set @I=0
update Table set ID=@I, @I=@I+1

Хотя пронумеровать записи в таблице - задача весьма тривиальная, здесь же вопрос стоял в другом: как вставлять записи так, что бы они были уже пронумерованы.
...
Рейтинг: 0 / 0
19.01.2001, 15:39
    #32001638
maximF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Номерация строк
Проще -
INSERT INTO Table
SELECT MAX(ID)+1, 'Information'
FROM Table
...
Рейтинг: 0 / 0
19.01.2001, 17:41
    #32001640
Staple
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Номерация строк
Согласен. Просто мне моча стукнула в голову, что тов. NetMinion, возможно, захочет этот ID тут же использовать. Так бывает с бодуна. А вообще эту тему здесь уже до дыр затерли...
...
Рейтинг: 0 / 0
20.01.2001, 03:52
    #32001650
NetMinion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Номерация строк
Спасибо всем, кто пытался ответить на этот вопрос)
на самом деле я просто слишком упростил задачу,
тем самым усложнив решение...
выход из моей ситуации таков:

SELECT IDENTITY(INT, 1, 1) as RowId, OldTable.tbl1
Into NewTable
From OldTable

правда тут возникает еще одна задача -
если tbl1 указан как IDENTITY то запрос вадаст ошибку...
(немогу вставить 2 IDENTITY) что-то вроде того...
а у меня именно такая ситуация...
...
Рейтинг: 0 / 0
20.01.2001, 14:47
    #32001658
AnKa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Номерация строк
Я вижу здесь два выхода (оба проверены - работают, самому надо было ).
1. Отбирать во временную таблицу #Tmp1 все столбцы из Tab1 кроме столбца IDENTITY.
2. Если нужен и "новый" номер строки и "старый", тогда:
SELECT IDENTITY(int, 1, 1) as NewID, OldID=CAST(t.ID as int), t.Field1, t.Field2
INTO #Tmp1
FROM Tab1 t

Желаю удачи!
...
Рейтинг: 0 / 0
20.01.2001, 16:32
    #32001665
NetMinion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Номерация строк
AnKa ты опять меня спосла)
я твой должник)))
спасибо..
...
Рейтинг: 0 / 0
20.01.2001, 16:55
    #32001666
AnKa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Номерация строк
... вообще-то я мальчик. А логин просто состоит из первых двух букв имени и фамилии. Но все равно, на здоровьечко!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Номерация строк / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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