カスタマーリクエストごとにいくつか作成していますが、私はステートメントを持っており、失敗するかどうか、または失敗しないようにコード行を追加する必要があるかどうかは疑問です。テーブル作成ステートメント
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)
)
あなたがテーブルで見ることができるように監査レポートのテーブルを設計は、外部キーとしてOR_IDたと監督の結果テーブルには主キーとしてそれを持っているし、監督の結果は、外部キーとしてAR_IDを持っており、監査報告書はそれを持っています主キーとして使用します。 OR_IDを主キーとする表がまだ作成されていないため、ステートメントが現状のままであるため、監査レポート表の作成に失敗しますか?
クエリの実行結果を入力してください。 – piyushj
これを試してみてください。はい。これは循環依存です。これを回避するには、作成後に制約の1つを追加する必要があります。私はそれが何か意味があるかどうか質問しますが。 1つの 'OversightResult'に対して' AuditReport'が1つしか存在しませんか?はいの場合、両方を同じテーブルに置くのはなぜですか?もしそうでなければ、想定されたリンクは両方向では不可能である。また、 'OR_Recommdations'はタイプミスです。 –
テンポラリテーブル(名前の前に#を付ける)として作成すると、テーブルを実際に作成しなくてもエラーが表示されます。最後にテーブルを削除する必要がある場合は、次回同じテーブルを再作成する際にエラーが発生することに注意してください。 –