2016-04-08 61 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