powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / INSERT & OUTPUT
7 сообщений из 7, страница 1 из 1
INSERT & OUTPUT
    #38838405
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ув. коллеги,

гарантирует ли OUTPUT ту же последовательность ID как в выражении VALUES ?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create table TEST1
(
 ID int identity(1,1) primary key
,T1 varchar(20)
,T2 varchar(20)
)

INSERT TEST1(T1,T2) 
OUTPUT INSERTED.ID
VALUES (NULL,NULL),(1,2),(3,4) --много строк



Т.е. надо быть уверенным, что INSERT выше всегда вернёт 1,2,3 и, например НЕ 2,1,3

Цель данного упражнения: получить и просвоить на клиенте сгенерированые ID.
...
Рейтинг: 0 / 0
INSERT & OUTPUT
    #38838413
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Us,
ну так в хелпе все есть
OUTPUT Clause (Transact-SQL)There is no guarantee that the order in which the changes are applied to the table and the order in which the rows are inserted into the output table or table variable will correspond.
...
Рейтинг: 0 / 0
INSERT & OUTPUT
    #38838417
Фотография daw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Us,

и еще там же:

SQL Server does not guarantee the order in which rows are processed and returned by DML statements using the OUTPUT clause
...
Рейтинг: 0 / 0
INSERT & OUTPUT
    #38838429
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем,

учитывая ваши комментарии переформулирую:

можно ли быть уверенным, что в приведённом мной INSERT строки будкт вставлены в той же последовательности:

т.е.
(NULL,NULL) --> ID = 1
(1,2)--> ID = 2
(3,4)--> ID = 3

и НЕ:
(1,2)--> ID = 1
(NULL,NULL) --> ID = 2
(3,4)--> ID = 3

В таком случае достаточно на клиетне отсортировать ID из OUTPUT и присвоить их строкам клиентской таблицы не занимаясь построковым сравнением.
...
Рейтинг: 0 / 0
INSERT & OUTPUT
    #38838740
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В MS SQL нет последовательности строк. Последовательность определяется выражением ORDER BY в запросе.
values (),() не может такого гарантировать, как я понимаю.
...
Рейтинг: 0 / 0
INSERT & OUTPUT
    #38839188
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander UsЦель данного упражнения: получить и присвоить на клиенте сгенерированные ID.
К чему этот цирк, если все равно возвращаются записи клиенту после вставки?
Используйте sequential GUID прям на клиенте и не напрягайтесь...Используйте, естественные ключи, если возможно, и - не напрягайтесь...
...
Рейтинг: 0 / 0
INSERT & OUTPUT
    #38839334
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buserИспользуйте, естественные ключиНе используйте естественные ключи
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / INSERT & OUTPUT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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