Sql server 在mssql中创建SP时会给出;“对话”;错误
我正在将我的数据库系统从MySql重写为MSSQL。在我当前的代码中,我得到了错误: SQL80001:靠近“;”的语法不正确。期待对话 我在结构和命名方面做了很多改变,但都没有解决这个问题。我似乎找不到我做错了什么。任何帮助都将不胜感激Sql server 在mssql中创建SP时会给出;“对话”;错误,sql-server,stored-procedures,Sql Server,Stored Procedures,我正在将我的数据库系统从MySql重写为MSSQL。在我当前的代码中,我得到了错误: SQL80001:靠近“;”的语法不正确。期待对话 我在结构和命名方面做了很多改变,但都没有解决这个问题。我似乎找不到我做错了什么。任何帮助都将不胜感激 提前感谢。每当你有一个IFstruct(你有2个)时,一定要添加BEGIN/END。尝试在更新之前添加开始。但同时,我发现:UPDATE。。。哪里有动物像…/如果@@ROWCOUNT=0/插入。这将跳过一次表访问,并根据参数值和该列上是否存在索引,可能会跳过一
提前感谢。每当你有一个
IF
struct(你有2个)时,一定要添加BEGIN
/END
。尝试在更新之前添加开始
。但同时,我发现:UPDATE。。。哪里有动物像…/如果@@ROWCOUNT=0/插入
。这将跳过一次表访问,并根据参数值和该列上是否存在索引,可能会跳过一次完整的表扫描。这就像一个符咒!!对此我感激不尽!:)每当您有一个IF
结构(并且有2个)时,总是添加开始
/结束
。尝试在更新之前添加开始
。但同时,我发现:UPDATE。。。哪里有动物像…/如果@@ROWCOUNT=0/插入
。这将跳过一次表访问,并根据参数值和该列上是否存在索引,可能会跳过一次完整的表扫描。这就像一个符咒!!对此我感激不尽!:)
CREATE PROCEDURE [dbo].[addAnime]
@$animeID INT,
@$animeName VARCHAR(100),
@$animeEpisodes INT,
@$animeSeasons INT,
@$animeGenre1 VARCHAR(100),
@$animeGenre2 VARCHAR(100),
@$animeGenre3 VARCHAR(100),
@$animeArtist VARCHAR(100),
@$animeStudio VARCHAR(100),
@$animeReleaseDate VARCHAR(100),
@$animeDescription VARCHAR(8000),
@$animeImageLocation VARCHAR(1000)
AS
BEGIN
IF NOT EXISTS (SELECT * FROM animedatabase.anime WHERE animeName LIKE @$animeName)
INSERT INTO animedatabase.anime(animeID, animeName, episodes, seasons, genre1, genre2, genre3, artist, studio, releaseDate, animeDescription, imageLocation)
VALUES(@$animeID, @$animeName, @$animeEpisodes, @$animeSeasons, @$animeGenre1, @$animeGenre2, @$animeGenre3, @$animeArtist, @$animeStudio, @$animeReleaseDate, @$animeDescription, @$animeImageLocation);
ELSE IF ((SELECT COUNT(*) FROM animedatabase.anime WHERE animeName LIKE @$animeName) = 1)
UPDATE
animedatabase.anime
SET
animeID = @$animeID,
animeName = @$animeName,
episodes = @$animeEpisodes,
seasons = @$animeSeasons,
genre1 = @$animeGenre1,
genre2 = @$animeGenre2,
genre3 = @$animeGenre3,
artist = @$animeArtist,
studio = @$animeStudio,
releaseDate = @$animeReleaseDate,
animeDescription = @$animeDescription,
imageLocation = @$animeImageLocation
WHERE animedatabase.anime.animename LIKE @$animeName;
END
END
END;