Ich erstelle ein paar nach einer Kundenanfrage und ich habe eine Aussage und ich frage mich, ob es scheitern wird oder wenn ich einige Zeilen Code hinzufügen muss, so wird es nicht fehlschlagen.Tabelle Creation Statement
CREATE TABLE AuditReport
(
AR_ID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
TPPRM_ID NVARCHAR(8) NOT NULL FOREIGN KEY REFERENCES Vendor(TPPRM_ID) ON DELETE CASCADE ON UPDATE CASCADE,
OR_ID INT NOT NULL FOREIGN KEY REFERENCES OversightResults(OR_ID) ON DELETE CASCADE ON UPDATE CASCADE,
AR_ReportNAme NVARCHAR(20) NOT NULL,
AR_Version NVARCHAR(7),
AR_Type NVARCHAR(20),
AR_DateCoveragePeriod DATETIME2,
AR_DateReceived DATETIME2,
AR_Opinion NVARCHAR(11) CONSTRAINT CHK_Opinion CHECK (AR_Opinion IN ('Qualified','Unqualified')),
AR_NextReportDate DATETIME2,
AR_KeyContactName NVARCHAR(30),
AR_ContactEmail NVARCHAR(40),
AR_ContactPhoneNumber NVARCHAR(14)
)
--Create OversightResults Table
CREATE TABLE OversightResults
(
OR_ID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
AR_ID INT NOT NULL FOREIGN KEY REFERENCES AuditReport(AR_ID) ON DELETE CASCADE ON UPDATE CASCADE,
TPPRM_ID NVARCHAR(8) NOT NULL FOREIGN KEY REFERENCES Vendor(TPPRM_ID) ON DELETE CASCADE ON UPDATE CASCADE,
OR_ServiceObjectives BIT,
OR_Objectives BIT,
OR_ControlsTested BIT,
OR_ManagementUserEntity NVARCHAR(10) CONSTRAINT CHK_ManagementUserEntity CHECK (OR_ManagementUserEntity IN ('Management','User')),
OR_Controls NVARCHAR(MAX),
OR_ServicerResponse NVARCHAR(MAX),
OR_ArvestMitigatingControls NVARCHAR(MAX),
OR_Deficiency NVARCHAR(10),
OR_Recommdations NVARCHAR(MAX),
OR_Observations NVARCHAR(MAX),
OR_Sufficiency BIT,
OR_RiskIdentified NVARCHAR(MAX)
)
Wie Sie in der Tabelle Design der Audit-Bericht Tabelle hat sehen können, als Fremdschlüssel und die Aufsichtsergebnistabelle hat es als Primärschlüssel und Aufsichtsergebnisse haben AR_ID als Fremdschlüssel und Audit-Bericht hat es OR_ID als Primärschlüssel. Wie die Aussage jetzt steht, wird die Audit-Berichtstabelle nicht erstellt, weil eine Tabelle mit OR_ID als Primärschlüssel noch nicht erstellt wurde?
Bitte geben Sie das Ergebnis der Abfrageausführung – piyushj
Ausprobieren würde dies beantworten, aber hey. Ja. Dies ist eine zirkuläre Abhängigkeit. Wahrscheinlich müssen Sie nach der Erstellung einen der Einschränkungen hinzufügen, um dies zu umgehen. Obwohl ich in Frage stelle, ob es Sinn macht, dies zu tun. Wird es nur einen "AuditReport" für ein "OversightResult" geben? Wenn ja, warum nicht beide in die gleiche Tabelle? Wenn nein, ist die beabsichtigte Verknüpfung nicht in beide Richtungen möglich. Auch ich denke, OR_Recommdations ist ein Tippfehler. –
Sie könnten versuchen, sie als temporäre Tabellen zu erstellen (setzen Sie ein # vor dem Namen), auf diese Weise sehen Sie alle Fehler, ohne die Tabellen tatsächlich zu erstellen. Denken Sie daran, dass Sie die Tabellen am Ende löschen müssen, sonst erhalten Sie Fehler, wenn Sie die gleiche Tabelle das nächste Mal neu erstellen. –