powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ошибка при insert'e данных из одной таблицы в другую
13 сообщений из 13, страница 1 из 1
ошибка при insert'e данных из одной таблицы в другую
    #39779470
Unicod3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток! речь о MsSQL Server 11.
Имеются две таблицы, данные надо вытащить из одной в другую. Написал insert с select'ом, ругается:
Violation of PRIMARY KEY constraint 'PK__NSI_REQ___3214EC2716FFA7BC'. Cannot insert duplicate key in object 'SAPEPDDB.NSI_REQ_HISTORY'. The duplicate key value is (0).

Я так понимаю что на новые записи в результирующей таблице на срабатывает авто инкремент для поля id и происходит попытка вставки записи с полем id = 0.
Вопрос почему? и как внести новые записи что бы не поломать порядок ID в результирующей таблице.
Спасибо

Модератор: Тема перенесена из форума "MySQL".
...
Рейтинг: 0 / 0
ошибка при insert'e данных из одной таблицы в другую
    #39779479
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Unicod3MsSQL Server 11.Такого в природе не существует. Существует 11.x или 2012.
Unicod3Написал insert с select'ом, ругается:
Violation of PRIMARY KEY constraint 'PK__NSI_REQ___3214EC2716FFA7BC'. Cannot insert duplicate key in object 'SAPEPDDB.NSI_REQ_HISTORY'. The duplicate key value is (0).

Я так понимаю что на новые записи в результирующей таблице на срабатывает авто инкремент для поля id и происходит попытка вставки записи с полем id = 0.
Вопрос почему? и как внести новые записи что бы не поломать порядок ID в результирующей таблице.Текст запроса и структуру таблиц предлагается угадать?
...
Рейтинг: 0 / 0
ошибка при insert'e данных из одной таблицы в другую
    #39779481
Unicod3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич,

11.0.70001.0

структура полей что заполняю достаточно проста, давайте попробуем с текстом запроса

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
INSERT INTO [EPD].[SAPEPDDB].[NSI_REQ_HISTORY] (CREATE_DATE,GID,REQUEST_NUMBER,REQUEST_STATUS,DIRECTORY_CODE,MTRCLASS,PRODUCTTYPE,MTRTYPE) 
  SELECT 
	CREATE_DATE,
	RECORD_NUMBER,
	REQUEST_NUMBER,
	REQUEST_STATUS,
	DIRECTORY_CODE,
	FIELD_VALUES as MTRCLASS,
	NULL as PRODUCTTYPE,
	NULL AS MTRTYPE
  FROM [EPD].[SAPEPDDB].[NSI_STEPS_HISTORY]
  WHERE FIELD_NAME LIKE @MTRClass
  AND DIRECTORY_CODE IS NOT NULL
  AND REQUEST_NUMBER = '286615'
...
Рейтинг: 0 / 0
ошибка при insert'e данных из одной таблицы в другую
    #39779487
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Unicod3структура полей что заполняю достаточно проста, давайте попробуем с текстом запроса Т.е. вы серьезно думаете, что кто-то будет угадывать по вашему тексту, по какому полю сделан констрейнт?
...
Рейтинг: 0 / 0
ошибка при insert'e данных из одной таблицы в другую
    #39779488
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Unicod311.0.70001.0Такого тоже не существует
...
Рейтинг: 0 / 0
ошибка при insert'e данных из одной таблицы в другую
    #39779581
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Unicod3в результирующей таблице не срабатывает авто инкремент

Слишком буйная фантазия.
Резонее предположить, что автоинкремента там ваще нету.
Или счетчик автоинкремента установлен в неправильное значение.
Код: sql
1.
DBCC CHECKIDENT (   'SAPEPDDB.NSI_REQ_HISTORY'  )



Unicod3Вопрос почему?

Это у вас надо спросить.

Unicod3и как внести новые записи что бы не поломать порядок ID в результирующей таблице.

Вариантов масса:
1. Явно задать ID.
2. Включить, таки, автоинкремент.
2. Поправить значение счетчика автоинкремента.
...
Рейтинг: 0 / 0
ошибка при insert'e данных из одной таблицы в другую
    #39779604
Unicod3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробую немного прояснить ситуацию. Вот скрипт на создание данной таблицы.
Код: 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.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
USE [EPD]
GO

/****** Object:  Table [SAPEPDDB].[NSI_REQ_HISTORY]    Script Date: 27.02.2019 9:22:54 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [SAPEPDDB].[NSI_REQ_HISTORY](
	[ID] [int] NOT NULL,
	[CREATE_DATE] [datetime] NULL,
	[GID] [nvarchar](20) NULL,
	[REQUEST_NUMBER] [nvarchar](50) NULL,
	[REQUEST_STATUS] [nvarchar](5) NULL,
	[DIRECTORY_CODE] [nvarchar](50) NULL,
	[MTRCLASS] [nvarchar](250) NULL,
	[PRODUCTTYPE] [nvarchar](250) NULL,
	[MTRTYPE] [nvarchar](250) NULL,
PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

ALTER TABLE [SAPEPDDB].[NSI_REQ_HISTORY] ADD  DEFAULT ((0)) FOR [ID]
GO

ALTER TABLE [SAPEPDDB].[NSI_REQ_HISTORY] ADD  DEFAULT (N' ') FOR [GID]
GO

ALTER TABLE [SAPEPDDB].[NSI_REQ_HISTORY] ADD  DEFAULT (N' ') FOR [REQUEST_NUMBER]
GO

ALTER TABLE [SAPEPDDB].[NSI_REQ_HISTORY] ADD  DEFAULT (N' ') FOR [REQUEST_STATUS]
GO

ALTER TABLE [SAPEPDDB].[NSI_REQ_HISTORY] ADD  DEFAULT (N' ') FOR [DIRECTORY_CODE]
GO

ALTER TABLE [SAPEPDDB].[NSI_REQ_HISTORY] ADD  DEFAULT (N' ') FOR [MTRCLASS]
GO

ALTER TABLE [SAPEPDDB].[NSI_REQ_HISTORY] ADD  DEFAULT (N' ') FOR [PRODUCTTYPE]
GO

ALTER TABLE [SAPEPDDB].[NSI_REQ_HISTORY] ADD  DEFAULT (N' ') FOR [MTRTYPE]
GO
...
Рейтинг: 0 / 0
ошибка при insert'e данных из одной таблицы в другую
    #39779605
Unicod3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скрин из контекстного меню ПКМ на бд -> свойства
...
Рейтинг: 0 / 0
ошибка при insert'e данных из одной таблицы в другую
    #39779607
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Unicod3попробую немного прояснить ситуацию. Вот скрипт на создание данной таблицы.
Код: sql
1.
2.
CREATE TABLE [SAPEPDDB].[NSI_REQ_HISTORY](
	[ID] [int] NOT NULL,

Где же IDENTITY? нету.
...
Рейтинг: 0 / 0
ошибка при insert'e данных из одной таблицы в другую
    #39779608
Unicod3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

как так-то...извините, чет с утра вчерашний вопрос ужас вызывает....
...
Рейтинг: 0 / 0
ошибка при insert'e данных из одной таблицы в другую
    #39779836
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и вот это вот зачем?
Код: sql
1.
ALTER TABLE [SAPEPDDB].[NSI_REQ_HISTORY] ADD  DEFAULT ((0)) FOR [ID]
...
Рейтинг: 0 / 0
ошибка при insert'e данных из одной таблицы в другую
    #39779875
Unicod3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диклевич Александр,

так студия сама генерит скрипт, нельзя что бы по умолчанию ничего не было
...
Рейтинг: 0 / 0
ошибка при insert'e данных из одной таблицы в другую
    #39779877
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Unicod3Диклевич Александр,

так студия сама генерит скрипт, нельзя что бы по умолчанию ничего не было

Код: sql
1.
2.
3.
4.
CREATE TABLE dbo.R
(
	a INT NOT NULL PRIMARY KEY
)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ошибка при insert'e данных из одной таблицы в другую
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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