Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 July 29

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Павлов Дмитрий
Можно ли как-то обратиться к внутреннему id строки?
Что за внутренний id строки?
ROWID ? Нет вроде, нельзя, никогда не было к нему доступа.
источник

DT

Dmitry Tataurov in SqlCom.ru - Стиль жизни SQL
Павлов Дмитрий
Можно ли как-то обратиться к внутреннему id строки?
%%physloc%% судя по всему речь об этом?
источник

ПД

Павлов Дмитрий... in SqlCom.ru - Стиль жизни SQL
Ilia Zviagin
Что за внутренний id строки?
ROWID ? Нет вроде, нельзя, никогда не было к нему доступа.
Типа номера который присваивается при внесении записи в таблицу.
В архивную таблицу залил строки с атрибутами прошлого года, ну, типа заливаю записи 17го года, приписываю дату '2017', и заливая 18й год, в столбец даты тоже записал '2017'.
источник

ПД

Павлов Дмитрий... in SqlCom.ru - Стиль жизни SQL
Dmitry Tataurov
%%physloc%% судя по всему речь об этом?
Сделал order by по нему, вообще все перемешалось.
Я хочу выстроить строки в порядке их внесения в базу.
Но id строк сам не назначал.
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
Павлов Дмитрий
Сделал order by по нему, вообще все перемешалось.
Я хочу выстроить строки в порядке их внесения в базу.
Но id строк сам не назначал.
а зачем тебе этот порядок?
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Павлов Дмитрий
Типа номера который присваивается при внесении записи в таблицу.
В архивную таблицу залил строки с атрибутами прошлого года, ну, типа заливаю записи 17го года, приписываю дату '2017', и заливая 18й год, в столбец даты тоже записал '2017'.
Это называется "первичный ключ"...
источник

OM

Oleg Makarikhin in SqlCom.ru - Стиль жизни SQL
Ilia Zviagin
Это называется "первичный ключ"...
Это называется автоинкремент, а в мс это идентити.
источник

ПД

Павлов Дмитрий... in SqlCom.ru - Стиль жизни SQL
Gopneg
а зачем тебе этот порядок?
В таблицу заливал сначала 17й год + приписывал '2017', потом 18й + приписывал '2018' , а вот заливая 19й тоже приписал '2018'
Теперь хочу взять последние залитые n-строк и переписать '2018' на '2019'.
Но открывая таблицу, вижу, что строки не в том порядке, как они заливались.
источник

ПД

Павлов Дмитрий... in SqlCom.ru - Стиль жизни SQL
Ilia Zviagin
Это называется "первичный ключ"...
Не назначал его
источник

А

Артем in SqlCom.ru - Стиль жизни SQL
Павлов Дмитрий
Не назначал его
В ниндзю.
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
Павлов Дмитрий
В таблицу заливал сначала 17й год + приписывал '2017', потом 18й + приписывал '2018' , а вот заливая 19й тоже приписал '2018'
Теперь хочу взять последние залитые n-строк и переписать '2018' на '2019'.
Но открывая таблицу, вижу, что строки не в том порядке, как они заливались.
выкинуть все и переделать по нормальному
хочешь писать дату - создай поле с датой и пиши
а не строки фиг знает куда
источник

ПД

Павлов Дмитрий... in SqlCom.ru - Стиль жизни SQL
Артем
В ниндзю.
Т.е. pk в обязательном порядке должен быть в любой таблице?
источник

ПД

Павлов Дмитрий... in SqlCom.ru - Стиль жизни SQL
Gopneg
выкинуть все и переделать по нормальному
хочешь писать дату - создай поле с датой и пиши
а не строки фиг знает куда
Так про дату и речь
источник

А

Артем in SqlCom.ru - Стиль жизни SQL
Павлов Дмитрий
Т.е. pk в обязательном порядке должен быть в любой таблице?
Это тебе расскажут в ниндзе.
источник

ПД

Павлов Дмитрий... in SqlCom.ru - Стиль жизни SQL
Артем
Это тебе расскажут в ниндзе.
Совет от эксперта сразу видно, спасибо
источник

А

Артем in SqlCom.ru - Стиль жизни SQL
Павлов Дмитрий
Совет от эксперта сразу видно, спасибо
Обращайся
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
Павлов Дмитрий
Так про дату и речь
тогда в общем случае никак, если у тебя нет никаких признаков по которым ты можешь отсортировать данные
субд никакого порядка вставки не гарантирует
и вывода в этом порядке тоже
источник

ПД

Павлов Дмитрий... in SqlCom.ru - Стиль жизни SQL
Gopneg
тогда в общем случае никак, если у тебя нет никаких признаков по которым ты можешь отсортировать данные
субд никакого порядка вставки не гарантирует
и вывода в этом порядке тоже
Именно с mssql начал только что знакомиться, ну и в процессе гугления где-то встретил инфу, что в любом случае создаётся 'скрытый индекс', но, похоже, это не про mssql было...
источник

OM

Oleg Makarikhin in SqlCom.ru - Стиль жизни SQL
если есть индекс(любой) то каждая строка может быть однозначно идентифицирована через %%lockres%%, но там нет порядка даже теоретически.
а также  %%physloc%%, там эвристически может быть порядок, но не обязан.
еще может быть поле типа rowversion https://docs.microsoft.com/ru-ru/sql/t-sql/data-types/rowversion-transact-sql?view=sql-server-ver15, технически его можно было бы использовать для твоей задачи. но для этого таблица должна содержать поле такого типа.
источник

ПД

Павлов Дмитрий... in SqlCom.ru - Стиль жизни SQL
Oleg Makarikhin
если есть индекс(любой) то каждая строка может быть однозначно идентифицирована через %%lockres%%, но там нет порядка даже теоретически.
а также  %%physloc%%, там эвристически может быть порядок, но не обязан.
еще может быть поле типа rowversion https://docs.microsoft.com/ru-ru/sql/t-sql/data-types/rowversion-transact-sql?view=sql-server-ver15, технически его можно было бы использовать для твоей задачи. но для этого таблица должна содержать поле такого типа.
Спасибо
Буду изучать)
источник