Я не функционируют подмостки, сделанные в MySQL на Microsoft SQL Server 2014

SET SESSION FOREIGN_KEY_CHECKS=0;

/* Drop Tables */

DROP TABLE IF EXISTS SE_COMPONE;
DROP TABLE IF EXISTS ARTICULO;
DROP TABLE IF EXISTS PEDIDO;
DROP TABLE IF EXISTS CLIENTE;




/* Create Tables */

CREATE TABLE ARTICULO
(
    num_serie numeric NOT NULL,
    id_articulo numeric,
    nombre_articulo varchar(100),
    PRIMARY KEY (num_serie),
    UNIQUE (num_serie)
);


CREATE TABLE CLIENTE
(
    dni varchar(12) NOT NULL,
    nombre_cliente varchar(40),
    apellidos varchar(50),
    PRIMARY KEY (dni),
    UNIQUE (dni)
);


CREATE TABLE PEDIDO
(
    fecha datetime NOT NULL,
    id_pedido numeric,
    nombre_pedido varchar(100),
    dni varchar(12) NOT NULL,
    PRIMARY KEY (fecha),
    UNIQUE (fecha),
    UNIQUE (dni)
);


CREATE TABLE SE_COMPONE
(
    fecha datetime NOT NULL,
    num_serie numeric NOT NULL,
    cantidad numeric,
    peso double,
    caducidad datetime,
    UNIQUE (fecha),
    UNIQUE (num_serie)
);



/* Create Foreign Keys */

ALTER TABLE SE_COMPONE
    ADD FOREIGN KEY (num_serie)
    REFERENCES ARTICULO (num_serie)
    ON UPDATE RESTRICT
    ON DELETE RESTRICT
;


ALTER TABLE PEDIDO
    ADD FOREIGN KEY (dni)
    REFERENCES CLIENTE (dni)
    ON UPDATE RESTRICT
    ON DELETE RESTRICT
;


ALTER TABLE SE_COMPONE
    ADD FOREIGN KEY (fecha)
    REFERENCES PEDIDO (fecha)
    ON UPDATE RESTRICT
    ON DELETE RESTRICT
;

Он дает мне следующие ошибки:

Mens. 195, Уровень 15, государство 7, Линия 2 'SESSION' не выбор признанный SET. Mens. 102, Уровень 15, государство 1, Линия 53 Синтаксис неправильная около','. Mens. 156, Уровень 15, государство 1, Линия 66 Синтаксис неправильная около ключевого слова 'RESTRICT'. Mens. 156, Уровень 15, государство 1, Линия 74 Синтаксис неправильная около ключевого слова 'RESTRICT'. Mens. 156, Уровень 15, государство 1, Линия 82 Синтаксис неправильная около ключевого слова 'RESTRICT'.

1
задан 04.01.2017, 22:50
0 ответов

Несмотря на то, что как MySql, так и SQL Server используют такого SQL как язык у них есть Ваши различия относительно синтаксиса, в твоем случае, только требуют каких-то настроек для того, чтобы твой рукописный шрифт функционировал в SQL Server.

BEGIN TRANSACTION
/* Drop Tables */
IF OBJECT_ID('SE_COMPONE', 'U') IS NOT NULL
    DROP TABLE SE_COMPONE;

IF OBJECT_ID('ARTICULO', 'U') IS NOT NULL
    DROP TABLE ARTICULO;

IF OBJECT_ID('PEDIDO', 'U') IS NOT NULL
    DROP TABLE PEDIDO;

IF OBJECT_ID('CLIENTE', 'U') IS NOT NULL
    DROP TABLE CLIENTE;

/* Create Tables */

CREATE TABLE ARTICULO
(
    num_serie numeric NOT NULL,
    id_articulo numeric,
    nombre_articulo varchar(100),
    PRIMARY KEY (num_serie),
    UNIQUE (num_serie)
);

CREATE TABLE CLIENTE
(
    dni varchar(12) NOT NULL,
    nombre_cliente varchar(40),
    apellidos varchar(50),
    PRIMARY KEY (dni),
    UNIQUE (dni)
);


CREATE TABLE PEDIDO
(
    fecha datetime NOT NULL,
    id_pedido numeric,
    nombre_pedido varchar(100),
    dni varchar(12) NOT NULL,
    PRIMARY KEY (fecha),
    UNIQUE (fecha),
    UNIQUE (dni)
);

CREATE TABLE SE_COMPONE
(
    fecha datetime NOT NULL,
    num_serie numeric NOT NULL,
    cantidad numeric,
    peso float,
    caducidad datetime,
    UNIQUE (fecha),
    UNIQUE (num_serie)
);

/* Create Foreign Keys */
ALTER TABLE SE_COMPONE
    ADD FOREIGN KEY (num_serie)
    REFERENCES ARTICULO (num_serie);

ALTER TABLE PEDIDO
    ADD FOREIGN KEY (dni)
    REFERENCES CLIENTE (dni);

ALTER TABLE SE_COMPONE
    ADD FOREIGN KEY (fecha)
    REFERENCES PEDIDO (fecha);

COMMIT

Заметь: в SQL Server я не знаю о каком-то решении, которое реализовывало бы сходное задание в RESTRICT MySql, если бы кому-то удалось дополнить этот ответ, любой комментарий втречен с радостью. Тем временем, ты script уже функциональный в SQL Server.

0
ответ дан 03.12.2019, 17:52

Больше, что они ты не функционировали, дело в том, что SQL Server не распознает решение RESTRICT, так как ты должен определять, что то, что ты хочешь сделать, например:

ALTER TABLE EmpEducation
ADD CONSTRAINT [FK_EmpEducation_Employees]
FOREIGN KEY (empno)REFERENCES employees(empno)
DELETE SET NULL ON UPDATE SET NULL
GO 

Здесь я оставляю тебе одну ссылку, которая может помогать тебе немного больше, надеюсь, что он ты помогает.

1
ответ дан 03.12.2019, 17:52