我在寫一個存儲過程,但我無法弄清楚編譯器不會給我任何錯誤規範。只是說它說查詢完成有錯誤。我不能看到錯誤..?!SQL Server使用AND與IF?
這是用作更新兩個表的存儲過程,代碼本身非常明瞭。
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[insertRankingData]
@domannamn [varchar](100),
@keyword [varchar](100),
@dagensdatum [Date],
@rankingposition [Decimal]
AS
DECLARE @domanID int
DECLARE @datumen date
IF(SELECT COUNT(*) FROM [dbo].[t_doman] WHERE doman_namn = @domannamn) = 0
BEGIN
INSERT INTO [dbo].[t_doman] (doman_namn)
VALUES(@domannamn)
SELECT @domanID = SCOPE_IDENTITY()
SELECT @todaysdate = GETDATE()
END
ELSE
BEGIN
SELECT @domanID = [doman_id]
FROM [dbo].[t_doman]
WHERE doman_namn = @domannamn
SELECT @todaysdate = GETDATE()
END
IF NOT @domanID IS NULL
BEGIN
IF NOT EXISTS (SELECT (ranking_date, ranking_keyword, ranking_id_doman)
FROM [dbo].[t_ranking]
WHERE ranking_id_doman = @domanID
AND ranking_keyword = @keyword
AND ranking_date = @datumen)
BEGIN
INSERT INTO [dbo].[t_ranking] (ranking_id_doman, ranking_date, ranking_position, ranking_keyword)
VALUES(@domanID, @todaysdate, @rankingposition, @keyword)
END
ELSE
BEGIN
UPDATE [dbo].[t_ranking]
SET ranking_position = @rankingposition
WHERE ranking_date = @todaysdate
AND ranking_keyword = @keyword
AND ranking_id_doman = @domanID
END
END
您是否檢查過日誌? – JYelton