Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Идентификатор текущего положения  [new]
jaketaylor
Member

Откуда:
Сообщений: 56
Есть таблица (big_table). В каком идентификаторе (или как он называется) содержится количество строк в таблице?
http://saveimg.ru/show-image.php?id=825fda372d44e49af81c6d6c9a2c21be

Для чего мне это надо:
Я определил номер выбранной строки (на скрине тут их три). Теперь SQL-запросом надо удалить третью строку:
DELETE FROM big_table WHERE ?_идентификатор_? = 3
22 дек 14, 22:27    [17037021]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор текущего положения  [new]
jaketaylor
Member

Откуда:
Сообщений: 56
SELECT COUNT(*) FROM big_table

Позволяет узнать количество записей.
22 дек 14, 22:29    [17037034]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор текущего положения  [new]
Glory
Member

Откуда:
Сообщений: 104760
jaketaylor
DELETE FROM big_table WHERE ?_идентификатор_? = 3


DELETE FROM big_table WHERE student_id = 3
22 дек 14, 23:49    [17037353]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор текущего положения  [new]
jaketaylor
Member

Откуда:
Сообщений: 56
Glory
jaketaylor
DELETE FROM big_table WHERE ?_идентификатор_? = 3


DELETE FROM big_table WHERE student_id = 3

Оно удалит, если в поле столбца studet_id встерится значение 3. А если его не будет?
У меня значение 3 находится программно.
23 дек 14, 00:25    [17037485]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор текущего положения  [new]
jaketaylor
Member

Откуда:
Сообщений: 56
Надо чтобы было как-то так:
DELETE FROM big_table WHERE идентификатор_обазначающий_номер_выделенной_строки = 3
23 дек 14, 00:26    [17037490]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор текущего положения  [new]
SERG1257
Member

Откуда:
Сообщений: 2828
https://ru.wikipedia.org/wiki/Первичный_ключ
23 дек 14, 00:50    [17037542]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор текущего положения  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3646
jaketaylor
Надо чтобы было как-то так:
DELETE FROM big_table WHERE идентификатор_обазначающий_номер_выделенной_строки = 3

У тебя в таблице обязан быть Primary Key. Он невидим в клиенте, но именно его он передает в субд. И по нему надо и удалять.
23 дек 14, 00:51    [17037544]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор текущего положения  [new]
JeStone
Member

Откуда:
Сообщений: 248
jaketaylor,
А теперь представь ситуацию, когда твое клиентское приложение позволяет сортировать записи по любому критерию. И относительно чего будешь считать "третью строку"? идентификатор != порядковый номер. Используй ключи.
23 дек 14, 03:55    [17037617]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор текущего положения  [new]
alukardD
Member

Откуда: USSR
Сообщений: 3369
jaketaylor
Надо чтобы было как-то так:
DELETE FROM big_table WHERE идентификатор_обазначающий_номер_выделенной_строки = 3

Если я правильно тебя понял запрос будет таким
+

use [newdb]
delete from [newdb].[dbo].[Table_1] where id=(
select max(t.id)
from [newdb].[dbo].[Table_1] t
where t.id in
(
select TOP 3 tt.id
from [newdb].[dbo].[Table_1] tt
order by tt.id
)
)

Удаляет третью строку в таблице. Если то, что надо - адаптируй его под себя (название таблицы, столбца) ....
23 дек 14, 07:36    [17037717]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор текущего положения  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
alukardD
Если я правильно тебя понял запрос будет таким
Да, и пока он смотрит на экран, количество строк вверху меняется, и удаляется какая то случайная строка.

Для управления данными jaketaylor-у нужно хотя бы прочитать про понятие первичный ключ, как уже сказали выше.
23 дек 14, 08:35    [17037784]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить