我的存储过程有点问题。它给我这个错误:SQL Server存储过程 - 转换错误
Conversion failed when converting the varchar value 'Cluj-Napoca' to data type int.
这是我的代码:
CREATE PROCEDURE UjVasarlas
@JID int,
@SZID int,
@Nev varchar(30),
@Cim varchar(30),
@Darab int,
@Datum varchar(30)
AS
SET NOCOUNT ON;
DECLARE @maxId int;
SET @maxId = (SELECT MAX(VevoID) FROM Vevo);
iF EXISTS (SELECT * FROM Vevo WHERE Vevo.VevoNev = @Nev)
begin
INSERT INTO Vasarlas VALUES (@maxId+1, @JID, @SZID, @Darab, @Datum)
end
else
INSERT INTO Vevo VALUES (@maxId+1, @Nev, @Cim, 1)
INSERT INTO Vasarlas VALUES (@maxId+1, @JID, @SZID, @Darab, @Datum)
GO
EXEC UjVasarlas 2, 2, 'Your Name', 'Your City', 2, '2013-01-22'
如果它帮助我可以告诉你它是什么,但我并没有想与浪费时间......谁能帮忙? ... THX预期;)
PS:
现在它还有另一个问题:
The INSERT statement conflicted with the FOREIGN KEY constraint "FK__Vasarlas__VevoID__47E69B3D". The conflict occurred in database "master", table "dbo.Vevo", column 'VevoID'.
两个表如下所示:
Vasarlas
(VevoID, JatekID, SzallitoID, Darab, Datum
)Vevo
(VevoID, VevoNev, OrszagID, Cim
)
请不要将日期存储为字符串(因为您似乎在这里使用第6个参数)。将字符串转换为日期(时间)有导致错误的倾向。 SQL Server具有用于存储日期和时间的特定数据类型。 –