GO
SET NOCOUNT ON;
DECLARE
@idAdvertisements int,
@Name nvarchar(255),
@Description nvarchar(500),
@DepartureDate datetime,
@Cities_idCities int,
@Areas_idAreas int,
@Countries_idCountries int,
@Agencies_idAgencies int,
@Url nvarchar(1000),
@Price decimal(6, 2),
@HollidayDuration int,
@BookingDate datetime;
DECLARE ad_cursor CURSOR
FOR SELECT idAdvertisements
,Name
,Description
,DepartureDate
,Cities_idCities
,Areas_idAreas
,Countries_idCountries
,Agencies_idAgencies
,Url
,Price
,HollidayDuration
,BookingDate
FROM Advertisements;
OPEN ad_cursor;
FETCH NEXT FROM ad_cursor
INTO @idAdvertisements
,@Name
,@Description
,@DepartureDate
,@Cities_idCities
,@Areas_idAreas
,@Countries_idCountries
,@Agencies_idAgencies
,@Url
,@Price
,@HollidayDuration
,@BookingDate;
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT ' ';
PRINT @idAdvertisements;
--PRINT @Name;
--PRINT @Description;
--PRINT @DepartureDate;
--PRINT @Cities_idCities;
END
CLOSE ad_cursor;
但我總是得到1, 1, 1, 1, 1
。數據總是相同的。T-SQL光標不生成預期輸出
SELECT
聲明是可以的。我不明白爲什麼。有人可以看到問題嗎?
爲什麼即使打擾一個CURSOR?如果你**必須**使用CURSOR,那麼至少將其定義爲CURSOR FAST_FORWARD以加快它的速度。但**最好的選擇**將是避免全部遊標 - 在90%的情況下,你也可以! – 2010-07-22 12:04:56
與marc_s一致,沒有必要爲此指定遊標。 – gsharp 2010-07-22 12:07:04
裏面有更多的代碼,所以需要curosr。我刪除了一些代碼以便更好地查看。 – senzacionale 2010-07-22 12:09:55