SQL是否违反UNIQUE KEY约束,但条目不存在?

时间:2019-10-10 10:05:47

标签: sql sql-server

我有点卡住了。尝试在数据库中插入新条目时遇到UNIQUE KEY冲突,但是当我对应该违反的值运行select时,它不会返回任何结果。

我已经附加了一些我的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 :(得分:0)

全部,谢谢您的答复。问题是Bill Gates在“用户”表中输入了3次。谢谢您的宝贵时间。

答案 1 :(得分:-1)

您要运行的查询是单个事务。如果有错误,它将自动回滚。因此,请检查您选择的查询,并确保您的文件名在那里唯一。