У меня есть несколько таблиц, которые мне нужно преобразовать из mySQL в SQL Server.Исправить SQL для преобразования таблиц mySQL в таблицы SQL Server
Пример из MySql таблицы является
CREATE TABLE `required_items` (
`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique Barcode ID',
`fk_load_id` INT(11) NOT NULL COMMENT 'Load ID',
`barcode` VARCHAR(255) NOT NULL COMMENT 'Barcode Value',
`description` VARCHAR(255) NULL DEFAULT NULL COMMENT 'Barcode Description',
`created` TIMESTAMP NULL DEFAULT NULL COMMENT 'Creation Timestamp',
`modified` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Modified Timestamp',
FOREIGN KEY (`fk_load_id`) REFERENCES `loads`(`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB CHARACTER SET ascii COLLATE ascii_general_ci COMMENT = 'Contains Required Items for the Load';
И триггер для обновления Дата создания файла
CREATE TRIGGER required_items_before_insert_created_date BEFORE INSERT ON `required_items`
FOR EACH ROW
BEGIN
SET NEW.created = CURRENT_TIMESTAMP;
END
Теперь мне нужно создавать таблицы, аналогичные этого в SQL Server. Кажется, что существует много разных типов данных, поэтому я не уверен, что использовать.
- Какой тип данных следует использовать в столбце первичного ключа (uniqueidentifier, bigint, int)?
- Что следует использовать для временных меток (timestamp, datatime, datetime2 (7))?
- Как я должен применять созданные и измененные метки времени (в настоящее время я использую триггеры)?
- Как я могу принудить ограничения внешнего ключа.
- Должен ли я использовать Varchar (255) в SQL Server? (Может быть, текст, Varchar (MAX) лучше)
Я использую Visual Studio 2010 для создания таблиц.