2016-04-08 127 views
-3

我有一個來自MYSQL的代碼片斷,它創建了一個兩個表之間的約束,加上一些數據被插入到其中一個表中。MYSQL到MSSQL代碼轉換

我想等價轉換爲MSSQL。我嘗試遷移,但它不斷給我一個轉換錯誤,我不能找出問題,因爲在MySQL這個代碼工作正常。

CREATE TABLE `tbl_variable_types` 
(
`variable_type_id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
`variable_type` varchar(10) DEFAULT NULL, 
    PRIMARY KEY (`variable_type_id`), 
    UNIQUE KEY `variable_type_id_UNIQUE` (`variable_type_id`) 
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8; 

INSERT INTO `tbl_variable_types` VALUES 
    (1,'BOOL'),(2,'BYTE'),(3,'WORD'),(4,'DWORD'), 
    (5,'SINT'),(6,'INT'),(7,'DINT'),(8,'LINT'),(9,'USINT'),(10,'UINT'), 
    (11,'UDINT'),(12,'ULINT'),(13,'REAL'),(14,'LREAL'),(15,'STRING'); 

CREATE TABLE `tbl_variables` 
(
`variable_tag_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Unique tag id to be used when calling variable in the code', 
`variable_name` varchar(100) NOT NULL COMMENT 'Variable string name from the plc CASE SENSITIVE', 
`variable_type` int(11) unsigned NOT NULL COMMENT 'The variable type from the twin table', 
PRIMARY KEY (`variable_tag_id`), 
UNIQUE KEY `variable_tag_id_UNIQUE` (`variable_tag_id`), 
KEY `c_var_type_idx` (`variable_type`), 
CONSTRAINT `c_var_type` FOREIGN KEY (`variable_type`) 
    REFERENCES `tbl_variable_types` (`variable_type_id`) 
    ON DELETE NO ACTION ON UPDATE NO ACTION 
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; 

如何將此代碼轉換爲SQL Server?

+1

的評論我們可以在MSSQL版本錯誤真正幫助不,如果你不告訴我們,版本和錯誤。 – David

+0

添加了錯誤和版本 – Combinu

回答

1

您是否在尋找下面的查詢

CREATE TABLE tbl_variable_types 
(
    variable_type_id int PRIMARY KEY NOT NULL Identity(1,1), 
    variable_type varchar(10) DEFAULT NULL 
) 
INSERT INTO tbl_variable_types VALUES (1,'BOOL'),(2,'BYTE'),(3,'WORD'),(4,'DWORD'),(5,'SINT'),(6,'INT'), 
       (7,'DINT'),(8,'LINT'),(9,'USINT'),(10,'UINT'),(11,'UDINT'),(12,'ULINT'),(13,'REAL'), 
       (14,'LREAL'),(15,'STRING'); 

CREATE TABLE tbl_variables 
( 
    variable_tag_id int NOT NULL IDentity (1,1) PRIMARY KEY , 
    variable_name varchar(100) NOT NULL, 
    variable_type int NOT NULL REFERENCES tbl_variable_types (variable_type_id), 
); 

對於加列

EXEC sp_addextendedproperty 
@name = N'Description', @value = 'Hey, here is my description!', 
@level0type = N'Schema', @level0name = yourschema, 
@level1type = N'Table', @level1name = YourTable, 
@level2type = N'Column', @level2name = yourColumn; 
GO 
+1

這似乎可以,我把int(10)改爲int,它應該沒問題。 – Combinu