Błędy, widoki itd..

0

Witam, mam zadany projekt i podczas tworzenia kodu w mssql pojawia mi się spora ilość błędów..

Przy ustawieniu języka pojawia mi się taki błąd:

Msg 142, Level 15, State 2, Line 8 Błędna składnia definicji ograniczenia „TABLE”.

SET LANGUAGE polski GO

Tutaj mam dwa błędy, a mianowicie:

Msg 208, Level 16, State 1, Procedure Klienci, Line 2 [Batch Start Line 101]
Nieprawidłowa nazwa obiektu „Kupcy”.
Msg 208, Level 16, State 1, Line 107
Nieprawidłowa nazwa obiektu „Klienci”.

CREATE TABLE Kupcy(
Imie                      VARCHAR(20) NOT NULL,
Nazwisko                  VARCHAR(20) NOT NULL,
Nr_Zamowienia             INT REFERENCES Sprzedaz(Nr_Sprzedazy),
PESEL                     VARCHAR(11) PRIMARY KEY,
Karta_Stalego_Klienta     VARCHAR(3) NOT NULL,
CHECK (Karta_Stalego_Klienta IN ('TAK','NIE'))
);


GO
CREATE VIEW Klienci AS
SELECT * FROM Kupcy;
GO

SELECT *
FROM   Klienci;

0

nie wydaje mi się aby te błędy odwoływały się do kawałków kodu, który wkleiłeś

0

@abrakadaber: właśnie do tych linijek... gdy klikam na błąd to przenosi mnie do tych linijek.
W pierwszym błędzie pokazuje mi GO..

0

@abrakadaber:

--drop DATABASE ProjektKodSQL
--GO

CREATE DATABASE ProjektKodSQL
GO

USE ProjektKodSQL
GO

SET LANGUAGE polski
GO


-------- USUŃ TABELE

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

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

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

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

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

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

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


--------- CREATE - TABELE I POWIĄZANIA


CREATE TABLE Magazyny(
Id             INT IDENTITY(10,10) PRIMARY KEY,
Pojemnosc      INT NOT NULL, DEFAULT(1000),
);

CREATE TABLE Magazynierzy(
id_magazynu   INT REFERENCES Magazyny(id),
PESEL         VARCHAR(11) PRIMARY KEY,
Imie          VARCHAR(20) NOT NULL,
Nazwisko      VARCHAR(20) NOT NULL,

 CHECK (Nazwisko LIKE '[A-Z]%'),
 CHECK (Imie LIKE '[A-Z]%')
); 

CREATE TABLE Towary(
Id             INT PRIMARY KEY IDENTITY(1,1),
Nazwa          VARCHAR(30) NOT NULL,
Cena_szt       FLOAT NOT NULL
);

CREATE TABLE Wymiana_Towarow(
Numer_Wymiany  INT PRIMARY KEY IDENTITY(1,1),
Id_Towaru      INT REFERENCES Towary(id),
Z_Magazynu     INT REFERENCES Magazyny(Id),	
Do_Magazynu    INT REFERENCES Magazyny(Id)
);

CREATE TABLE Stan(
Id_magazynu   INT REFERENCES Magazyny(Id),
Id_towaru     INT REFERENCES Towary(Id),
Ilosc         INT NOT NULL
);

CREATE TABLE Sprzedaz(
Nr_sprzedazy  INT PRIMARY KEY IDENTITY(1,1),
Id_Magazynu   INT REFERENCES Magazyny(Id),
Id_Towaru     INT REFERENCES Towary(id),
Ilosc         INT NOT NULL,
--Cena          MONEY ,  
Data          DATE NOT NULL,
Status        VARCHAR(12),

CHECK (Status IN ('Wydano','W realizacji'))
);

CREATE TABLE Kupcy(
Imie                      VARCHAR(20) NOT NULL,
Nazwisko                  VARCHAR(20) NOT NULL,
Nr_Zamowienia             INT REFERENCES Sprzedaz(Nr_Sprzedazy),
PESEL                     VARCHAR(11) PRIMARY KEY,
Karta_Stalego_Klienta     VARCHAR(3) NOT NULL,
CHECK (Karta_Stalego_Klienta IN ('TAK','NIE'))
);


GO
CREATE VIEW Klienci AS
SELECT * FROM Kupcy;
GO

SELECT *
FROM   Klienci;
0
  1. nie ma języka polski - jest polish
  2. przed DEFAULT ma nie być przecinka
    czyli część błędów masz gdzie indziej
0

@abrakadaber:

  1. Właśnie na zajęciach używaliśmy "polski" i było dobrze.. ale fakt faktem nie powinno tak być biorąc to na logikę :)
    Dziękuję ! :) na razie zostawię temat, bo jak jeszcze będę mieć pytanie, to tu napiszę.
0

@abrakadaber: Dalej mam błędy.... kazało usunąć iteracje w danych, bo jest IDENTITY, ale za to później wywaliło błąd...

Msg 3726, Level 16, State 1, Line 17
Nie można usunąć obiektu Magazyny, ponieważ odwołuje się do niego ograniczenie FOREIGN KEY.
Msg 3726, Level 16, State 1, Line 23
Nie można usunąć obiektu Towary, ponieważ odwołuje się do niego ograniczenie FOREIGN KEY.
Msg 2714, Level 16, State 6, Line 41
W bazie danych istnieje już obiekt o nazwie Magazyny.
Msg 208, Level 16, State 1, Procedure Widok, Line 3 [Batch Start Line 223]
Nieprawidłowa nazwa obiektu „Kupcy”.
Msg 208, Level 16, State 1, Line 229
Nieprawidłowa nazwa obiektu „Widok”.

--drop DATABASE ProjektKodSQL
--GO

CREATE DATABASE ProjektKodSQL
GO

USE ProjektKodSQL
GO

SET LANGUAGE polish
GO


-------- USUŃ TABELE

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

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

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

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

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

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

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


--------- CREATE - TABELE I POWIĄZANIA


CREATE TABLE Magazyny(
Id             INT IDENTITY(1,1) PRIMARY KEY,
Pojemnosc      INT NOT NULL DEFAULT(10000),
);

CREATE TABLE Magazynierzy(
id_magazynu   INT REFERENCES Magazyny(id),
PESEL         VARCHAR(11) PRIMARY KEY,
Imie          VARCHAR(20) NOT NULL,
Nazwisko      VARCHAR(20) NOT NULL,

 CHECK (Nazwisko LIKE '[A-Z]%'),
 CHECK (Imie LIKE '[A-Z]%')
); 

CREATE TABLE Towary(
Id             INT PRIMARY KEY IDENTITY(1,1),
Nazwa          VARCHAR(30) NOT NULL,
Cena_szt       FLOAT NOT NULL
);

CREATE TABLE Wymiana_Towarow(
Numer_Wymiany  INT PRIMARY KEY IDENTITY(1,1),
Id_Towaru      INT REFERENCES Towary(id),
Z_Magazynu     INT REFERENCES Magazyny(Id),	
Do_Magazynu    INT REFERENCES Magazyny(Id),
Ilosc          INT
);


CREATE TABLE Stan(
Id_magazynu   INT REFERENCES Magazyny(Id),
Id_towaru     INT REFERENCES Towary(Id),
Ilosc         INT NOT NULL
);

CREATE TABLE Kupcy(
Imie                      VARCHAR(20) NOT NULL,
Nazwisko                  VARCHAR(20) NOT NULL,
PESEL                     VARCHAR(11) PRIMARY KEY,
Karta_Stalego_Klienta     VARCHAR(3) NOT NULL,
CHECK (Karta_Stalego_Klienta IN ('TAK','NIE'))
);



CREATE TABLE Sprzedaz(
Nr_sprzedazy  INT PRIMARY KEY IDENTITY(1,1),
Id_Magazynu   INT REFERENCES Magazyny(Id),
Id_Towaru     INT REFERENCES Towary(id),
Ilosc         INT NOT NULL,
--Cena          MONEY ,  
Data          DATE NOT NULL,
Kupiec_PESEL        VARCHAR(11) REFERENCES Kupcy(PESEL),


);



------ DANE

INSERT INTO Magazyny VALUES (10000);
INSERT INTO Magazyny VALUES (10000);
INSERT INTO Magazyny VALUES (10000);
INSERT INTO Magazyny VALUES (10000);
INSERT INTO Magazyny VALUES (10000);


INSERT INTO Magazynierzy VALUES (1,80110812915);
INSERT INTO Magazynierzy VALUES (1,88081102937);
INSERT INTO Magazynierzy VALUES (1,81081102937);
INSERT INTO Magazynierzy VALUES (1,97061305557);

INSERT INTO Magazynierzy VALUES (2,80115812915);
INSERT INTO Magazynierzy VALUES (2,88084102937);
INSERT INTO Magazynierzy VALUES (2,81083102937);
INSERT INTO Magazynierzy VALUES (2,97062305557);

INSERT INTO Magazynierzy VALUES (3,97064505557);
INSERT INTO Magazynierzy VALUES (3,88083402937);
INSERT INTO Magazynierzy VALUES (3,81088902937);
INSERT INTO Magazynierzy VALUES (3,97066705557);

INSERT INTO Magazynierzy VALUES (4,73111716456);
INSERT INTO Magazynierzy VALUES (4,77051500315);
INSERT INTO Magazynierzy VALUES (4,67051500315);
INSERT INTO Magazynierzy VALUES (4,87066705557);

INSERT INTO Magazynierzy VALUES (5,80111716456);
INSERT INTO Magazynierzy VALUES (5,90051500315);
INSERT INTO Magazynierzy VALUES (5,70051500315);
INSERT INTO Magazynierzy VALUES (5,84066705557);

INSERT INTO Towary VALUES ('Procesor i3',300);
INSERT INTO Towary VALUES ('Procesor i5',600);
INSERT INTO Towary VALUES ('Procesor i7',1200);
INSERT INTO Towary VALUES ('Kosc RAM 4GB',120);
INSERT INTO Towary VALUES ('Kosc RAM 8GB',210);
INSERT INTO Towary VALUES ('Pasta termoprzewodzaca',12);
INSERT INTO Towary VALUES ('Myszka bezprzewodowa',60);
INSERT INTO Towary VALUES ('Klawiatura bezprzewodowa',65);
INSERT INTO Towary VALUES ('Cooler',90);
INSERT INTO Towary VALUES ('Plyta glowna',389);

INSERT INTO Wymiana_Towarow VALUES(1,5,4,2,50);
INSERT INTO Wymiana_Towarow VALUES(2,3,2,3,30);
INSERT INTO Wymiana_Towarow VALUES(3,8,4,5,20);
INSERT INTO Wymiana_Towarow VALUES(4,6,4,1,10);
INSERT INTO Wymiana_Towarow VALUES(5,9,3,2,70);

INSERT INTO Stan VALUES(1,1,800);
INSERT INTO Stan VALUES(1,2,800);
INSERT INTO Stan VALUES(1,3,800);
INSERT INTO Stan VALUES(1,4,800);
INSERT INTO Stan VALUES(1,5,800);
INSERT INTO Stan VALUES(1,6,800);
INSERT INTO Stan VALUES(1,7,800);
INSERT INTO Stan VALUES(1,8,800);
INSERT INTO Stan VALUES(1,9,800);
INSERT INTO Stan VALUES(1,10,800);

INSERT INTO Stan VALUES(2,1,700);
INSERT INTO Stan VALUES(2,2,700);
INSERT INTO Stan VALUES(2,3,700);
INSERT INTO Stan VALUES(2,4,700);
INSERT INTO Stan VALUES(2,5,700);
INSERT INTO Stan VALUES(2,6,700);
INSERT INTO Stan VALUES(2,7,700);
INSERT INTO Stan VALUES(2,8,700);
INSERT INTO Stan VALUES(2,9,700);
INSERT INTO Stan VALUES(2,10,700);

INSERT INTO Stan VALUES(3,1,650);
INSERT INTO Stan VALUES(3,2,760);
INSERT INTO Stan VALUES(3,3,770);
INSERT INTO Stan VALUES(3,4,740);
INSERT INTO Stan VALUES(3,5,730);
INSERT INTO Stan VALUES(3,6,720);
INSERT INTO Stan VALUES(3,7,730);
INSERT INTO Stan VALUES(3,8,740);
INSERT INTO Stan VALUES(3,9,720);
INSERT INTO Stan VALUES(3,10,720);

INSERT INTO Stan VALUES(4,1,600);
INSERT INTO Stan VALUES(4,2,600);
INSERT INTO Stan VALUES(4,3,600);
INSERT INTO Stan VALUES(4,4,600);
INSERT INTO Stan VALUES(4,5,600);
INSERT INTO Stan VALUES(4,6,700);
INSERT INTO Stan VALUES(4,7,700);
INSERT INTO Stan VALUES(4,8,700);
INSERT INTO Stan VALUES(4,9,700);
INSERT INTO Stan VALUES(4,10,700);

INSERT INTO Stan VALUES(5,1,500);
INSERT INTO Stan VALUES(5,2,100);
INSERT INTO Stan VALUES(5,3,400);
INSERT INTO Stan VALUES(5,4,700);
INSERT INTO Stan VALUES(5,5,700);
INSERT INTO Stan VALUES(5,6,700);
INSERT INTO Stan VALUES(5,7,700);
INSERT INTO Stan VALUES(5,8,700);
INSERT INTO Stan VALUES(5,9,700);
INSERT INTO Stan VALUES(5,10,700);


INSERT INTO Kupcy VALUES ('Bartosz', 'Kordylewski',97061305557,'TAK');
INSERT INTO Kupcy VALUES ('Natalia','Nowak',71112014092,'NIE');
INSERT INTO Kupcy VALUES ('Karol','Wrona',91113014092,'NIE');
INSERT INTO Kupcy VALUES ('Rafal','Kowalewski',81134014092,'NIE');
INSERT INTO Kupcy VALUES ('Karol','Kowal',61145614092,'NIE');


INSERT INTO Sprzedaz VALUES (1,3,10,'10-01-2018',97061305557);
INSERT INTO Sprzedaz VALUES (4,6,80,'15-01-2018',71112014092);
INSERT INTO Sprzedaz VALUES (3,4,45,'16-01-2018',91113014092);
INSERT INTO Sprzedaz VALUES (2,8,90,'16-01-2018',81134014092);
INSERT INTO Sprzedaz VALUES (5,10,55,'19-01-2018',61145614092);



GO
CREATE VIEW Widok as (
Select nazwisko,
       PESEL  From Kupcy)
GO

Select * FROM Widok; 
0

Został tylko ten błąd...

Msg 8101, Level 16, State 1, Line 216
Jawną wartość dla kolumny tożsamości w tabeli „Sprzedaz” można określić tylko wtedy, gdy jest używana lista kolumn, a atrybut IDENTITY_INSERT ma wartość ON.

0
SET IDENTITY_INSERT Magazynierzy ON;
INSERT INTO Magazynierzy VALUES (1,80110812915);
INSERT INTO Magazynierzy VALUES (1,88081102937);
INSERT INTO Magazynierzy VALUES (1,81081102937);
INSERT INTO Magazynierzy VALUES (1,97061305557);
...
SET IDENTITY_INSERT Magazynierzy OFF;
...

https://msdn.microsoft.com/pl-pl/library/ms188059(v=sql.110).aspx
W danym momencie możesz mieć IDENTITY_INSERT na ON dla tylko jednej tabeli, więc trzeba jak najszybciej wyłączyć.

0

@Marcin.Miga: czyli muszę wyłączać i włączać po każdym Insercie do tabeli w którym był IDENTITY ?

Jednak dalej jest ten błąd przy Towarach.

SET IDENTITY_INSERT Magazyny ON;
INSERT INTO Magazyny VALUES (10000);
INSERT INTO Magazyny VALUES (10000);
INSERT INTO Magazyny VALUES (10000);
INSERT INTO Magazyny VALUES (10000);
INSERT INTO Magazyny VALUES (10000);
SET IDENTITY_INSERT Magazyny OFF;

INSERT INTO Magazynierzy VALUES (1,80110812915,'Pawel','Nowak');
INSERT INTO Magazynierzy VALUES (1,88081102937,'Jan','Kowalski');
INSERT INTO Magazynierzy VALUES (1,81081102937,'Jan','Maria');
INSERT INTO Magazynierzy VALUES (1,97061305557,'Aleksander','Kosiak');

INSERT INTO Magazynierzy VALUES (2,80115812915,'Joanna','Kowalska');
INSERT INTO Magazynierzy VALUES (2,88084102937,'Adam','Zieliński');
INSERT INTO Magazynierzy VALUES (2,81083102937,'Damian','Szymański');
INSERT INTO Magazynierzy VALUES (2,97062305557,'Lucjan','Jabłoński');

INSERT INTO Magazynierzy VALUES (3,97064505557,'Radosław','Kowalski');
INSERT INTO Magazynierzy VALUES (3,88083402937,'Lucjan','Jabłoński');
INSERT INTO Magazynierzy VALUES (3,81088902937,'Damian','Szymański');
INSERT INTO Magazynierzy VALUES (3,97066705557,'Daniel','Kaczmarek');

INSERT INTO Magazynierzy VALUES (4,73111716456,'Zenon','Kozłowski');
INSERT INTO Magazynierzy VALUES (4,77051500315,'Daniel','Kaczmarek');
INSERT INTO Magazynierzy VALUES (4,67051500315,'Radosław','Kowalski');
INSERT INTO Magazynierzy VALUES (4,87066705557,'Zenon','Kozłowski');

INSERT INTO Magazynierzy VALUES (5,80111716456,'Damian','Szymański');
INSERT INTO Magazynierzy VALUES (5,90051500315,'Daniel','Kaczmarek');
INSERT INTO Magazynierzy VALUES (5,70051500315,'Michał','Majewski');
INSERT INTO Magazynierzy VALUES (5,84066705557,'Adam','Wróbel');

SET IDENTITY_INSERT Towary ON;
INSERT INTO Towary VALUES (1,'Procesor i3',300);
INSERT INTO Towary VALUES (2,'Procesor i5',600);
INSERT INTO Towary VALUES (3,'Procesor i7',1200);
INSERT INTO Towary VALUES (4,'Kosc RAM 4GB',120);
INSERT INTO Towary VALUES (5,'Kosc RAM 8GB',210);
INSERT INTO Towary VALUES (6,'Pasta termoprzewodzaca',12);
INSERT INTO Towary VALUES (7,'Myszka bezprzewodowa',60);
INSERT INTO Towary VALUES (8,'Klawiatura bezprzewodowa',65);
INSERT INTO Towary VALUES (9,'Cooler',90);
INSERT INTO Towary VALUES (10,'Plyta glowna',389);
SET IDENTITY_INSERT Towary OFF;

SET IDENTITY_INSERT Wymiana_Towarow ON;
INSERT INTO Wymiana_Towarow VALUES(1,5,4,2,50);
INSERT INTO Wymiana_Towarow VALUES(2,3,2,3,30);
INSERT INTO Wymiana_Towarow VALUES(3,8,4,5,20);
INSERT INTO Wymiana_Towarow VALUES(4,6,4,1,10);
INSERT INTO Wymiana_Towarow VALUES(5,9,3,2,70);
SET IDENTITY_INSERT Wymiana_Towarow OFF;

INSERT INTO Stan VALUES(1,1,800);
INSERT INTO Stan VALUES(1,2,800);
INSERT INTO Stan VALUES(1,3,800);
INSERT INTO Stan VALUES(1,4,800);
INSERT INTO Stan VALUES(1,5,800);
INSERT INTO Stan VALUES(1,6,800);
INSERT INTO Stan VALUES(1,7,800);
INSERT INTO Stan VALUES(1,8,800);
INSERT INTO Stan VALUES(1,9,800);
INSERT INTO Stan VALUES(1,10,800);

INSERT INTO Stan VALUES(2,1,700);
INSERT INTO Stan VALUES(2,2,700);
INSERT INTO Stan VALUES(2,3,700);
INSERT INTO Stan VALUES(2,4,700);
INSERT INTO Stan VALUES(2,5,700);
INSERT INTO Stan VALUES(2,6,700);
INSERT INTO Stan VALUES(2,7,700);
INSERT INTO Stan VALUES(2,8,700);
INSERT INTO Stan VALUES(2,9,700);
INSERT INTO Stan VALUES(2,10,700);

INSERT INTO Stan VALUES(3,1,650);
INSERT INTO Stan VALUES(3,2,760);
INSERT INTO Stan VALUES(3,3,770);
INSERT INTO Stan VALUES(3,4,740);
INSERT INTO Stan VALUES(3,5,730);
INSERT INTO Stan VALUES(3,6,720);
INSERT INTO Stan VALUES(3,7,730);
INSERT INTO Stan VALUES(3,8,740);
INSERT INTO Stan VALUES(3,9,720);
INSERT INTO Stan VALUES(3,10,720);

INSERT INTO Stan VALUES(4,1,600);
INSERT INTO Stan VALUES(4,2,600);
INSERT INTO Stan VALUES(4,3,600);
INSERT INTO Stan VALUES(4,4,600);
INSERT INTO Stan VALUES(4,5,600);
INSERT INTO Stan VALUES(4,6,700);
INSERT INTO Stan VALUES(4,7,700);
INSERT INTO Stan VALUES(4,8,700);
INSERT INTO Stan VALUES(4,9,700);
INSERT INTO Stan VALUES(4,10,700);

INSERT INTO Stan VALUES(5,1,500);
INSERT INTO Stan VALUES(5,2,100);
INSERT INTO Stan VALUES(5,3,400);
INSERT INTO Stan VALUES(5,4,700);
INSERT INTO Stan VALUES(5,5,700);
INSERT INTO Stan VALUES(5,6,700);
INSERT INTO Stan VALUES(5,7,700);
INSERT INTO Stan VALUES(5,8,700);
INSERT INTO Stan VALUES(5,9,700);
INSERT INTO Stan VALUES(5,10,700);


INSERT INTO Kupcy VALUES ('Bartosz', 'Kordylewski',97061305557,'TAK');
INSERT INTO Kupcy VALUES ('Natalia','Nowak',71112014092,'NIE');
INSERT INTO Kupcy VALUES ('Karol','Wrona',91113014092,'NIE');
INSERT INTO Kupcy VALUES ('Rafal','Kowalewski',81134014092,'NIE');
INSERT INTO Kupcy VALUES ('Karol','Kowal',61145614092,'NIE');

SET IDENTITY_INSERT Sprzedaz ON;
INSERT INTO Sprzedaz VALUES (1,1,3,10,'10-01-2018',97061305557);
INSERT INTO Sprzedaz VALUES (2,4,6,80,'15-01-2018',71112014092);
INSERT INTO Sprzedaz VALUES (3,3,4,45,'16-01-2018',91113014092);
INSERT INTO Sprzedaz VALUES (4,2,8,90,'16-01-2018',81134014092);
INSERT INTO Sprzedaz VALUES (5,5,10,55,'19-01-2018',61145614092);
SET IDENTITY_INSERT Sprzedaz OFF;

1 użytkowników online, w tym zalogowanych: 0, gości: 1