C#으로 프로젝트를 만들고 SQL Server 2008 데이터베이스에 연결했습니다. 프로 시저를 만들었지 만 오류가 계속 발생하여 찾을 수 없습니다. 재미있는 점은 동일한 스크립트에서 2 개의 프로 시저를 더 생성했는데 모든 것이 잘 작동한다는 것입니다.SQL Server 저장 프로 시저를 찾을 수 없습니다.
먼저 스크립트를 읽고 모든 코드를 실행하면 매우 잘 통과합니다. 그런 다음 하나의 테이블이 만들어지고 두 개의 절차가 완료되고 마침내 마지막 프로 시저가 발생하지만 오류가 계속 발생합니다. 당신이 내가 잘못한 것을 볼 수 있도록 몇 가지 코드를 넣을 것입니다.
IF object_id('Uporabniki') IS NULL
CREATE TABLE Uporabniki
(
id_uporabnika int,
ime_uporabnika nvarchar(200) not NULL,
skupina_uporabnika nvarchar(200) not NULL,
PRIMARY KEY (id_uporabnika)
)
GO
IF object_id('Dodaj_uporabnika') IS NULL
EXEC sp_executesql N'
CREATE PROCEDURE Dodaj_uporabnika
-- Add the parameters for the stored procedure here
@ime_uporabnika nvarchar(200),
@skupina_uporabnika nvarchar(200)
AS
BEGIN
DECLARE @id_konec INT
SET @id_konec=(SELECT MAX(id_uporabnika) FROM Uporabniki);
IF(@id_konec IS NULL)
BEGIN
SET @id_konec= 1
insert into Uporabniki (id_uporabnika,ime_uporabnika, skupina_uporabnika) values (@id_konec, @ime_uporabnika,@skupina_uporabnika);
END
ELSE
BEGIN
insert into Uporabniki (id_uporabnika,ime_uporabnika, skupina_uporabnika) values (@id_konec + 1, @ime_uporabnika,@skupina_uporabnika);
END
END'
GO
IF object_id('Spremeni_uporabnika') IS NULL
EXEC sp_executesql N'
CREATE PROCEDURE Spremeni_uporabnika
-- Add the parameters for the stored procedure here
@stari_id int,
@novo_ime_uporabnika nvarchar(200),
@nova_skupina_uporabnika nvarchar(200)
AS
BEGIN
BEGIN
UPDATE Uporabniki SET [email protected]_ime_uporabnika,[email protected]_skupina_uporabnika WHERE @stari_id=id_uporabnika;
END
END'
GO
IF object_id('Brisanje_uporabnika') IS NULL
EXEC sp_executesql N'
CREATE PROCEDURE Brisanje_uporabnika
-- Add the parameters for the stored procedure here
@id_uporabnika int
AS
BEGIN
BEGIN
DELETE * FROM Uporabniki WHERE @id_uporabnika = id_uporabnika;
END
END'
GO
스크립팅과 동적 SQL 사용의 두 가지 문제점이 있습니다. –
프로 시저 스키마를 확인 했습니까? 스키마를 호출에 추가하고 어떤 일이 발생하는지 확인합니다. – rcdmk