为什么这个存储过程执行不了?
好像陷入死循环,不能结束,但看不出那里出问题了:
CREATE TABLE DUEDATES(CheckOutDate smalldatetime , DueDate smalldatetime)
GO
CREATE PROCEDURE Popduedates AS
SET NOCOUNT ON
DECLARE @year integer , @insertday datetime
SELECT @year = YEAR(GETDATE()) , @insertday = CAST(@year AS char(4)) + '0101'
-- TRUNCATE TABLE DUEDATES
WHILE @year = YEAR(@insertday)
BEGIN
IF ((SELECT DATEPART(dw , @insertday)) NOT IN(1,7))
AND NOT EXISTS(SELECT * FROM HOLIDAYS WHERE HolidayDate = @insertday)
INSERT INTO DUEDATES VALUES(@insertday , @insertday+14)
SET @insertday = @insertday + 1
END
GO
EXEC Popduedates
其中HOLIDAYS 如下
CREATE TABLE HOLIDAYS(HolidayName char(30) , HolidayDate smalldatetime)
INSERT HOLIDAYS VALUES('New Year''s Day' , '19990101')
INSERT HOLIDAYS VALUES('Valentine''s Day' , '19990214')
INSERT HOLIDAYS VALUES('St. Patrick''s Day' , '19990317')
INSERT HOLIDAYS VALUES('Memorial Day' , '19990530')
INSERT HOLIDAYS VALUES('Independence Day' , '19990704')
INSERT HOLIDAYS VALUES('Labor Day' , '19990906')
INSERT HOLIDAYS VALUES('Indigenous Peoples Day' , '19991011')
INSERT HOLIDAYS VALUES('Halloween' , '19991031')
INSERT HOLIDAYS VALUES('Thanksgiving Day' , '19991125')
INSERT HOLIDAYS VALUES('Day After Thanksgiving' , '19991126')
INSERT HOLIDAYS VALUES('Christmas Day' , '19991225')
INSERT HOLIDAYS VALUES('New Year''s Eve' , '19991231')