Нарушение SQL ограничения UNIQUE KEY, но запись не существует? - PullRequest
0 голосов
/ 10 октября 2019

Я немного застрял. Я получаю нарушение UNIQUE KEY, когда пытаюсь вставить новую запись в свою базу данных, но когда я запускаю выборку для значения, которое предположительно является нарушением, оно не возвращает результатов.

Я прикрепилнекоторые изображения моего УНИКАЛЬНОГО КЛЮЧА, а также запрос, не возвращающий результатов. Любая помощь будет принята с благодарностью.

Точное сообщение об ошибке, которое выдает SQL Management Studio:

Msg 2627, Level 14, State 1, Line 1
Violation of UNIQUE KEY constraint 'UK_Document'. Cannot insert duplicate key in object 'dbo.Document'. The duplicate key value is (E-00000001-M-0212-001_0).
The statement has been terminated.
INSERT INTO [Project].[dbo].[Document]  
                            (
                                project_id, 
                                classification_id, 
                                document_nid, 
                                number, 
                                title_1, 
                                title_2, 
                                title_3, 
                                revision, 
                                revision_description_id, 
                                date_revision, 
                                number_external, 
                                revision_external, 
                                created_by_id, 
                                modified_by_id, 
                                date_modified, 
                                filename, 
                                file_extension, 
                                file_size, 
                                source_id, 
                                pdf, 
                                status_id, 
                                hidden,
                                read_only
                            )  
                            SELECT p.id, 
                                cl.id, 
                                v.document_nid, 
                                v.number, 
                                v.title_1, 
                                v.title_2, 
                                v.title_3, 
                                v.revision, 
                                rd.id, 
                                v.date_revision, 
                                v.number_external, 
                                v.revision_external, 
                                cr.id, 
                                mo.id, 
                                v.date_modified, 
                                v.filename, 
                                v.file_extension, 
                                v.file_size, 
                                co.id, 
                                v.pdf, 
                                ds.id, 
                                v.hidden, 
                                v.read_only 
                            FROM 
                            (
                                VALUES 
                                (
                                    '00000001', 
                                    NULL, 
                                    1, 
                                    'E-00000001-M-0212-001', 
                                    'XREF TEST', 
                                    '', 
                                    '', 
                                    '0', 
                                    'For Construction', 
                                    CURRENT_TIMESTAMP, 
                                    '', 
                                    '', 
                                    'Bill Gates', 
                                    'Bill Gates', 
                                    CURRENT_TIMESTAMP, 
                                    'E-00000001-M-0212-001_0', 
                                    '.dwg', 
                                    '12 kb', 
                                    'My Company', 
                                    0, 
                                    'working', 
                                    0, 
                                    1
                                )
                            ) 
                            v
                            (
                                project, 
                                classification, 
                                document_nid, 
                                number, 
                                title_1, 
                                title_2, 
                                title_3, 
                                revision, 
                                revision_description, 
                                date_revision, 
                                number_external, 
                                revision_external, 
                                created_by, 
                                modified_by, 
                                date_modified, 
                                filename, 
                                file_extension, 
                                file_size, 
                                source, 
                                pdf, 
                                status, 
                                hidden, 
                                read_only
                            ) 
                            LEFT JOIN [MyCompany].[dbo].[Project] p 
                                ON p.number = v.project 
                            LEFT JOIN [DMS].[dbo].[Revision_Description] rd 
                                ON rd.name = v.revision_description 
                            LEFT JOIN [DMS].[dbo].[Document_Status] ds 
                                ON ds.description = 'working' 
                            LEFT JOIN [MyCompany].[dbo].[User] cr 
                                ON cr.full_name = v.created_by 
                            LEFT JOIN [MyCompany].[dbo].[User] mo 
                                ON mo.full_name = v.modified_by 
                            LEFT JOIN [MyCompany].[dbo].[Company] co 
                                ON co.name = v.source 
                            INNER JOIN [DMS].[dbo].[Area] ar 
                                ON ar.name = 'Projects' 
                            INNER JOIN [DMS].[dbo].[Category] ca 
                                ON ca.name = 'Engineering' 
                            INNER JOIN [DMS].[dbo].[Discipline] di 
                                ON di.name = 'MECHANICAL & PIPING' 
                            INNER JOIN [DMS].[dbo].[Document_Type] dt1 
                                ON dt1.name = 'DRAWINGS' 
                            INNER JOIN [DMS].[dbo].[Document_Type_2] dt2 
                                ON dt2.name = 'XREF' 
                            INNER JOIN [DMS].[dbo].[Classification] cl 
                                ON ar.id = cl.area_id AND ca.id = cl.category_id AND di.id = cl.discipline_id AND dt1.id = cl.document_type_id AND dt2.id = cl.document_type_2_id;

enter image description here enter image description here

Ответы [ 2 ]

0 голосов
/ 10 октября 2019

Всем, спасибо за наши ответы. Проблема заключалась в том, что Билл Гейтс был введен 3 раза в таблицу пользователей. Спасибо за ваше время.

0 голосов
/ 10 октября 2019

Запрос, который вы пытаетесь выполнить, представляет собой одну транзакцию. Если есть ошибка, она будет автоматически отменена. Поэтому, пожалуйста, проверьте ваш запрос выбора и убедитесь, что имя вашего файла там уникально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...