Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ошибка при insert'e данных из одной таблицы в другую / 13 сообщений из 13, страница 1 из 1
26.02.2019, 17:30
    #39779470
Unicod3
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при insert'e данных из одной таблицы в другую
Доброго времени суток! речь о 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
26.02.2019, 17:42
    #39779479
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при insert'e данных из одной таблицы в другую
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
26.02.2019, 17:50
    #39779481
Unicod3
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при insert'e данных из одной таблицы в другую
Гавриленко Сергей Алексеевич,

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
26.02.2019, 18:02
    #39779487
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при insert'e данных из одной таблицы в другую
Unicod3структура полей что заполняю достаточно проста, давайте попробуем с текстом запроса Т.е. вы серьезно думаете, что кто-то будет угадывать по вашему тексту, по какому полю сделан констрейнт?
...
Рейтинг: 0 / 0
26.02.2019, 18:04
    #39779488
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при insert'e данных из одной таблицы в другую
Unicod311.0.70001.0Такого тоже не существует
...
Рейтинг: 0 / 0
27.02.2019, 05:30
    #39779581
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при insert'e данных из одной таблицы в другую
Unicod3в результирующей таблице не срабатывает авто инкремент

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



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

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

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

Вариантов масса:
1. Явно задать ID.
2. Включить, таки, автоинкремент.
2. Поправить значение счетчика автоинкремента.
...
Рейтинг: 0 / 0
27.02.2019, 09:24
    #39779604
Unicod3
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при insert'e данных из одной таблицы в другую
попробую немного прояснить ситуацию. Вот скрипт на создание данной таблицы.
Код: 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
27.02.2019, 09:27
    #39779605
Unicod3
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при insert'e данных из одной таблицы в другую
Скрин из контекстного меню ПКМ на бд -> свойства
...
Рейтинг: 0 / 0
27.02.2019, 09:29
    #39779607
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при insert'e данных из одной таблицы в другую
Unicod3попробую немного прояснить ситуацию. Вот скрипт на создание данной таблицы.
Код: sql
1.
2.
CREATE TABLE [SAPEPDDB].[NSI_REQ_HISTORY](
	[ID] [int] NOT NULL,

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

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

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

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

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


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