powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Копирование значения поля identity
10 сообщений из 10, страница 1 из 1
Копирование значения поля identity
    #39754029
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Подскажите пожалуйста как при insert скопировать значение поля identity в другое поле?

Как делаю сейчас
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create table #tmp(fld1 int identity(1,1),fld2 int,fld3 varchar(10))

insert into #tmp(fld3)
values('hello'),('world')

-- вот от этого апдейта хочу избавиться, какую магию надо применить? :)
update #tmp set
 fld2 = fld1

select *
from #tmp

drop table #tmp



мне нужно чтобы поле fld2 заполнялось при insert такими же значениями как и поле fld2
...
Рейтинг: 0 / 0
Копирование значения поля identity
    #39754031
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл версию SQL написать
SQL Server 2012 sp4 enterprise
...
Рейтинг: 0 / 0
Копирование значения поля identity
    #39754035
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MandarinПодскажите пожалуйста как при insert скопировать значение поля identity в другое поле?Никак. Можно разве что скрыть этот update, убрав его в триггер. Или можно сделать вычисляемсое поле, но, наверное, вам нужно обычное.
...
Рейтинг: 0 / 0
Копирование значения поля identity
    #39754038
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create table #tmp(fld1 int identity(1,1)
                           --,fld2 int
                           ,fld3 varchar(10))

insert into #tmp(fld3)
values('hello'),('world')

-- вот от этого апдейта хочу избавиться, какую магию надо применить? :)
--update #tmp set
-- fld2 = fld1

select *, fld2 = fld1
from #tmp
...
Рейтинг: 0 / 0
Копирование значения поля identity
    #39754042
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поле должно быть обычным не вычисляемым и оно должно быть. Это боле используется дальше по логике программы.
...
Рейтинг: 0 / 0
Копирование значения поля identity
    #39754047
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Копирование значения поля identity
    #39754064
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin,

sequence вместо identity не предлагать?
...
Рейтинг: 0 / 0
Копирование значения поля identity
    #39754118
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя, можно вот такое извращение организовать
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
create table dbo.t (id int identity primary key, v int, id2 int);
go

create trigger dbo.tr_t
on dbo.t
instead of insert
as
begin
 set nocount on;

 exec sys.sp_getapplock @Resource = N'dbo.t__insert', @LockMode = N'Exclusive', @LockOwner = N'Transaction', @LockTimeout = -1;

 set identity_insert dbo.t on;

 declare @ic int = ident_current('dbo.t');

 insert into dbo.t
  (id, v, id2)
  select
   @ic + row_number() over (order by (select 1)),
   i.v,
   @ic + row_number() over (order by (select 1))
  from
   inserted i;
end;
go

insert into dbo.t (v)
values
 (10), (20), (30);

select * from dbo.t;
go

drop table dbo.t;
go

Правда работать будет не всегда
...
Рейтинг: 0 / 0
Копирование значения поля identity
    #39754201
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Копирование значения поля identity
    #39754204
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin,

А можно для общего развития рассказать для чего далее используется это поле fld2 ?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Копирование значения поля identity
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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