Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Unicod3 Member Откуда: Сообщений: 27 |
Доброго времени суток! речь о 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 в результирующей таблице. Спасибо
Сообщение было отредактировано: 26 фев 19, 17:37 |
|
26 фев 19, 17:30 [21819974] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37150 |
Сообщение было отредактировано: 26 фев 19, 17:45 |
||||
26 фев 19, 17:42 [21819989] Ответить | Цитировать Сообщить модератору |
Unicod3 Member Откуда: Сообщений: 27 |
Гавриленко Сергей Алексеевич, 11.0.70001.0 структура полей что заполняю достаточно проста, давайте попробуем с текстом запроса 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' |
26 фев 19, 17:50 [21819993] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37150 |
|
||
26 фев 19, 18:02 [21820005] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37150 |
|
||
26 фев 19, 18:04 [21820006] Ответить | Цитировать Сообщить модератору |
aleks222 Member Откуда: Сообщений: 1238 |
Слишком буйная фантазия. Резонее предположить, что автоинкремента там ваще нету. Или счетчик автоинкремента установлен в неправильное значение. DBCC CHECKIDENT ( 'SAPEPDDB.NSI_REQ_HISTORY' )
Это у вас надо спросить.
Вариантов масса: 1. Явно задать ID. 2. Включить, таки, автоинкремент. 2. Поправить значение счетчика автоинкремента. |
||||||
27 фев 19, 05:30 [21820150] Ответить | Цитировать Сообщить модератору |
Unicod3 Member Откуда: Сообщений: 27 |
попробую немного прояснить ситуацию. Вот скрипт на создание данной таблицы.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 |
27 фев 19, 09:24 [21820194] Ответить | Цитировать Сообщить модератору |
Unicod3 Member Откуда: Сообщений: 27 |
Скрин из контекстного меню ПКМ на бд -> свойства К сообщению приложен файл. Размер - 8Kb |
27 фев 19, 09:27 [21820196] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
|
||
27 фев 19, 09:29 [21820199] Ответить | Цитировать Сообщить модератору |
Unicod3 Member Откуда: Сообщений: 27 |
alexeyvg, как так-то...извините, чет с утра вчерашний вопрос ужас вызывает.... |
27 фев 19, 09:33 [21820201] Ответить | Цитировать Сообщить модератору |
Диклевич Александр Member Откуда: Сообщений: 611 |
и вот это вот зачем?ALTER TABLE [SAPEPDDB].[NSI_REQ_HISTORY] ADD DEFAULT ((0)) FOR [ID] |
27 фев 19, 14:26 [21820589] Ответить | Цитировать Сообщить модератору |
Unicod3 Member Откуда: Сообщений: 27 |
Диклевич Александр, так студия сама генерит скрипт, нельзя что бы по умолчанию ничего не было |
27 фев 19, 14:55 [21820666] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
CREATE TABLE dbo.R ( a INT NOT NULL PRIMARY KEY ) |
||
27 фев 19, 14:58 [21820671] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |