所以我有這個疑問在MySQL:翻譯的MySQL到SQL Server
-- -----------------------------------------------------
-- Table majorequipment
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `majorequipment` (
`MEId` INT(11) NOT NULL AUTO_INCREMENT,
`PACId` INT(11) NULL DEFAULT NULL,
`EquipmentNumber` VARCHAR(255) NULL DEFAULT NULL,
`Comments` TEXT NULL DEFAULT NULL,
`ETId` INT(11) NULL DEFAULT NULL,
`Status` VARCHAR(100) NULL DEFAULT NULL,
`Description` VARCHAR(255) NULL DEFAULT NULL,
`Removed` TINYINT(1) NOT NULL DEFAULT '0',
`Active` TINYINT(1) NULL DEFAULT '1',
PRIMARY KEY (`MEId`),
INDEX `PACId` (`PACId` ASC),
INDEX `ETId` (`ETId` ASC),
INDEX `fk_majorequipment_status_idx` (`Status` ASC),
CONSTRAINT `fk_majorequipment_userdefinedcode_PACId`
FOREIGN KEY (`PACId`)
REFERENCES `userdefinedcode` (`UDCId`)
ON DELETE RESTRICT
ON UPDATE CASCADE,
CONSTRAINT `fk_majorequipment_userdefinedcode_ETId`
FOREIGN KEY (`ETId`)
REFERENCES `userdefinedcode` (`UDCId`)
ON DELETE RESTRICT
ON UPDATE CASCADE,
CONSTRAINT `fk_majorequipment_status`
FOREIGN KEY (`Status`)
REFERENCES `componentstatus` (`StatusName`)
ON DELETE RESTRICT
ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
,我試圖將其轉換爲SQL服務器,但我有一些問題。
ON DELETE RESTRICT
:我不確定這個SQL的等價物。從我可以告訴它可能是NO ACTION
,但我不確定。我使用SQL小提琴(MS SQL 2014)和更換後,所有的
ON DELETE RESTRICT
與ON DELETE NO ACTION
它顯示了這個錯誤:Introducing FOREIGN KEY constraint 'fk_majorequipment_userdefinedcode_ETId' on table 'majorequipment' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
後注:我已經刪除了「 `'字符和最後兩行(ENGINE
和DEFAULT CHARACTER SET
)
通過SQL你是指SQL Server支持的方言? –
@GordonLinoff是的。我們在MySQL中使用了所有這些函數,並且我們正在將它們翻譯成在SQL Server中使用 – Ben