ELSEが自分のコードでなぜハイライテリアであるのか知っていますか?最後のELSE。私はプロシージャを作成しようとしていますが、if節に問題があります他にもif else else sql
誰か助けてもらえますか?私はidの最大値を持つ解を見つけ、それに1を加えることは良いことではないが、それは一時的なものであることを知っている。後、私は唯一の
CREATE PROCEDURE dodajAuto
(@marka VARCHAR,
@model VARCHAR,
@kolor VARCHAR,
@moc INT,
@dataProdukcji DATETIME,
@cena DECIMAL,
@typ VARCHAR,
@przebieg INT)
AS
BEGIN
DECLARE @tmpMarka VARCHAR = (SELECT MARKA FROM MARKA WHERE MARKA=MARKA)
DECLARE @tmpModel VARCHAR = (SELECT MODEL FROM MODEL WHERE MODEL=MODEL)
DECLARE @tmpIdModelu INT = (SELECT IDMODELU FROM MODEL WHERE MODEL=MODEL)
DECLARE @tmpIdMarki INT = (SELECT IDMARKI FROM MARKA WHERE MARKA=MARKA)
DECLARE @tmpLastIdSamochodu INT = (SELECT MAX(IDSAMOCHODU) FROM SAMOCHOD)
DECLARE @tmpLastIdModelu INT = (SELECT MAX(IDMODELU) FROM MODEL)
DECLARE @tmpLastIdMarki INT = (SELECT MAX(IDMARKI) FROM MARKA)
IF (@tmpMarka IS NOT NULL)
IF (@tmpModel IS NOT NULL)
INSERT INTO SAMOCHOD
VALUES (@tmpLastIdSamochodu+1, @tmpIdModelu, @kolor, @moc, @przebieg, @dataPRodukcji, @typ);
ELSE
INSERT INTO MODEL
VALUES (@tmpLastIdModelu+1, @tmpIdMarki, @model, @cena)
SET @tmpIdModelu = (SELECT IDMODELU FROM MODEL WHERE MODEL = MODEL)
INSERT INTO SAMOCHOD
VALUES (@tmpLastIdSamochodu+1, @tmpIdModelu, @kolor, @moc, @przebieg, @dataProdukcji, @typ);
ELSE --THIS IS WHERE SYNTAX IS HIGLIHTED,
INSERT INTO MARKA VALUES (@tmpLastIdMarki+1, @marka)
SET @tmpIdMarki = (SELECT IDMARKI FROM MARKA WHERE MARKA = MARKA)
INSERT INTO MODEL
VALUES (@tmpLastIdModelu+1, @tmpIdMarki, @model, @cena)
SET @tmpIdModelu = (SELECT IDMODELU FROM MODEL WHERE MODEL = MODEL)
INSERT INTO SAMOCHOD
VALUES (@tmpLastIdSamochodu+1, @tmpIdModelu, @kolor, @moc, @przebieg, @dataProdukcji, @typ);
あなたのコードはまったく意味がありません。 'MODEL = MODEL'のような大きな問題があります。 –
また、 'IF-ELSE'ブロックの' INSERT'文の末尾にある ';'はなぜですか? –
[蹴るバッド癖:長さのないVARCHARを宣言する - Aaron Bertrand](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-declaring-varchar- without-length.aspx) – SqlZim