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

Откуда:
Сообщений: 388
как узнать уникальный номер строки, после импорта в таблицу, командой

insert into Jurnal (suma, nomer, oper )


столбец id в этой таблице автоматом присваивает уникальный номер , как можно быстро или при создании узнать как был выделен номер?

чтобы сохранить его в переменную
26 сен 12, 16:29    [13226954]     Ответить | Цитировать Сообщить модератору
 Re: как узнать идентификатор новой записи после импорта  [new]
1й1
Guest
gulyaev.s,

SCOPE_IDENTITY
26 сен 12, 16:37    [13227013]     Ответить | Цитировать Сообщить модератору
 Re: как узнать идентификатор новой записи после импорта  [new]
gulyaev.s
Member

Откуда:
Сообщений: 388
1й1,

спасибо!!! то что нужно.
26 сен 12, 17:04    [13227251]     Ответить | Цитировать Сообщить модератору
 Re: как узнать идентификатор новой записи после импорта  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
USE AdventureWorks;
GO
DECLARE @MyTableVar table( ScrapReasonID smallint,
                           Name varchar(50),
                           ModifiedDate datetime);
INSERT Production.ScrapReason
    OUTPUT INSERTED.ScrapReasonID, INSERTED.Name, INSERTED.ModifiedDate
        INTO @MyTableVar
VALUES (N'Operator error', GETDATE());

--Display the result set of the table variable.
SELECT ScrapReasonID, Name, ModifiedDate FROM @MyTableVar;
--Display the result set of the table.
SELECT ScrapReasonID, Name, ModifiedDate 
FROM Production.ScrapReason;
GO


OUTPUT
если версия сервера позволяет
26 сен 12, 17:04    [13227259]     Ответить | Цитировать Сообщить модератору
 Re: как узнать идентификатор новой записи после импорта  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Konst_One
USE AdventureWorks;
GO
DECLARE @MyTableVar table( ScrapReasonID smallint,
                           Name varchar(50),
                           ModifiedDate datetime);
INSERT Production.ScrapReason
    OUTPUT INSERTED.ScrapReasonID, INSERTED.Name, INSERTED.ModifiedDate
        INTO @MyTableVar
VALUES (N'Operator error', GETDATE());

--Display the result set of the table variable.
SELECT ScrapReasonID, Name, ModifiedDate FROM @MyTableVar;
--Display the result set of the table.
SELECT ScrapReasonID, Name, ModifiedDate 
FROM Production.ScrapReason;
GO


OUTPUT
если версия сервера позволяет

Этот вариант более универсальный - и подходит для случая, когда нужно получить значение не IDENTITY, а DEFAULT, или когда вставляется несколько записей, и необходимо получить новые значения для всех:
use tempdb
go

create table #testtable (id int identity(1, 1), value nvarchar(255));
create table #inserted (id int);
insert into #testtable (value)
output inserted.id into #inserted
values('test1'), ('test2'), ('test3');
select * from #inserted;
drop table #testtable;
drop table #inserted;
26 сен 12, 18:31    [13227801]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить