powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как получить primary key после insert
7 сообщений из 7, страница 1 из 1
Как получить primary key после insert
    #39843822
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Есть таблица с первичным ключём Id. Тип данных uniqueidentifier.

Хотелось бы вернуть этот ключ после insert into. Пытался делать так

Код: sql
1.
2.
3.
INSERT INTO... ;

SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY];  



возвращает NULL

Создать в этой таблице столбец id_num int IDENTITY(1,1) не представляется возможным.

Подскажите что можно сделать?
...
Рейтинг: 0 / 0
Как получить primary key после insert
    #39843823
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hopfen_Artur,

OUTPUT INSERTED.Id
...
Рейтинг: 0 / 0
Как получить primary key после insert
    #39843831
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK,

А вот так правильно будет?

Код: sql
1.
2.
3.
DECLARE @myid uniqueidentifier = NEWID();  
INSERT INTO ...
SELECT @myid as id;  
...
Рейтинг: 0 / 0
Как получить primary key после insert
    #39843832
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hopfen_ArturTaPaK,

А вот так правильно будет?

Код: sql
1.
2.
3.
DECLARE @myid uniqueidentifier = NEWID();  
INSERT INTO ...
SELECT @myid as id;  


ну если вам нравится вставлять по одной записи, то кто вам запретит
...
Рейтинг: 0 / 0
Как получить primary key после insert
    #39843880
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hopfen_ArturTaPaK,

А вот так правильно будет?

Код: sql
1.
2.
3.
DECLARE @myid uniqueidentifier = NEWID();  
INSERT INTO ...
SELECT @myid as id;  


Нет, неправильно.
Если уж вы собрались использовать в качестве id GUIDы - используйте SEQUENTIAL GUID. Таблицы будут меньше фрагментироваться.
https://docs.microsoft.com/ru-ru/sql/t-sql/functions/newsequentialid-transact-sql?view=sql-server-2017

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE #myTable (ColumnA uniqueidentifier DEFAULT NEWSEQUENTIALID(), ColumnB varchar(100));

Declare @t table (ColumnA uniqueidentifier, ColumnB varchar(100))

insert into #myTable (ColumnB)
output inserted.* into @t
	Values ('1'), ('2'), ('3')

Select * from @t
...
Рейтинг: 0 / 0
Как получить primary key после insert
    #39843883
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster,

авторТаблицы будут меньше фрагментироваться.
с чего бы это случится?

ну и бывают не кластерные PK
...
Рейтинг: 0 / 0
Как получить primary key после insert
    #39843888
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё не выяснили, нет ли у таблицы триггера INSTEAD OF INSERT.
Если есть, никакой OUTPUT не поможет.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как получить primary key после insert
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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