Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
15.01.2001, 16:46
|
|||
---|---|---|---|
|
|||
Номерация строк |
|||
#18+
Запрос: INSERT INTO Table VALUES ((SELECT MAX ID FROM Table) + 1,'Information') или что то в это м роде... Как заставить этот запрос работать? ПОМОГИТЕ ПЛЗ) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.01.2001, 16:46
|
|||
---|---|---|---|
|
|||
Номерация строк |
|||
#18+
Запрос: INSERT INTO Table VALUES ((SELECT MAX ID FROM Table) + 1,'Information') или что то в это м роде... Как заставить этот запрос работать? ПОМОГИТЕ ПЛЗ) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.01.2001, 17:02
|
|||
---|---|---|---|
Номерация строк |
|||
#18+
Ну такой-то запрос работать не заставить Надо немного попроще просто написать 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' ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.01.2001, 17:06
|
|||
---|---|---|---|
|
|||
Номерация строк |
|||
#18+
Declare @id int Select @id = Max(Id) From T1 Insert Into T1 Values (@id,'Information') А вообще-то не пытаешься ли ты изобрести велосипед? Мне кажется, что ты хочешь сделать то, что в SQL Server'е реализуется через Identity (посмотри Help по Create Table) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.01.2001, 17:38
|
|||
---|---|---|---|
|
|||
Номерация строк |
|||
#18+
Спасибо Серж ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.01.2001, 05:05
|
|||
---|---|---|---|
|
|||
Номерация строк |
|||
#18+
Способ нумерации строк предложенный SergSuper интересен , только вот не лишен некоторых неудобств в использовании. Скажем если в таблице полей 30 , а на данном этапе нужно заполнить только 5(все остальные заполняются default) - как тогда написать Insert ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.01.2001, 11:27
|
|||
---|---|---|---|
Номерация строк |
|||
#18+
"Марксизм - это не догма, а руководство к действию" В.И.Ленин Это я к тому: идея дадена - а вы уж как-нибудь развивайте сами. По 5 записей так конечно не вставишь. Но... 1. А не проще ли использовать IDENTITY ? 2. Если IDENTITY действительно не подходит(допустим нужно что бы была нумерация без "дырок", а с IDENTITY они при удалении записей появяться) то наверное можно придумать обходные варианты. Например вставлять какое-нибудь предопределённое значение (например "-1" или "null"), а потом в цикле их апдейтить. Это можно делать в триггере. Тут реализация зависит уже от конкретной задачи. 3. А подумайте - может вам нумерация и вообще не нужна? С приветом Сергей sergsuper@mail.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.01.2001, 20:50
|
|||
---|---|---|---|
Номерация строк |
|||
#18+
Идея не моя. Получил по рассылки с сайта citycat.ru (MS SQL SERVER - дело тонкое). declare @I int set @I=0 update Table set ID=@I=@I+1 В BOL такого синтаксиса я не нашел. Попробовал - работает! Нумерует записи, правда те, которые уже имеются в таблице. Успехов. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.01.2001, 10:34
|
|||
---|---|---|---|
Номерация строк |
|||
#18+
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 Хотя пронумеровать записи в таблице - задача весьма тривиальная, здесь же вопрос стоял в другом: как вставлять записи так, что бы они были уже пронумерованы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.01.2001, 15:39
|
|||
---|---|---|---|
Номерация строк |
|||
#18+
Проще - INSERT INTO Table SELECT MAX(ID)+1, 'Information' FROM Table ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.01.2001, 17:41
|
|||
---|---|---|---|
|
|||
Номерация строк |
|||
#18+
Согласен. Просто мне моча стукнула в голову, что тов. NetMinion, возможно, захочет этот ID тут же использовать. Так бывает с бодуна. А вообще эту тему здесь уже до дыр затерли... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.01.2001, 03:52
|
|||
---|---|---|---|
|
|||
Номерация строк |
|||
#18+
Спасибо всем, кто пытался ответить на этот вопрос) на самом деле я просто слишком упростил задачу, тем самым усложнив решение... выход из моей ситуации таков: SELECT IDENTITY(INT, 1, 1) as RowId, OldTable.tbl1 Into NewTable From OldTable правда тут возникает еще одна задача - если tbl1 указан как IDENTITY то запрос вадаст ошибку... (немогу вставить 2 IDENTITY) что-то вроде того... а у меня именно такая ситуация... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.01.2001, 14:47
|
|||
---|---|---|---|
|
|||
Номерация строк |
|||
#18+
Я вижу здесь два выхода (оба проверены - работают, самому надо было ). 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 Желаю удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.01.2001, 16:32
|
|||
---|---|---|---|
|
|||
Номерация строк |
|||
#18+
AnKa ты опять меня спосла) я твой должник))) спасибо.. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&mobile=1&tid=1827458]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 270ms |
total: | 415ms |
0 / 0 |