Con trỏ tĩnh tạo bản sao của tập kết quả trong bộ nhớ tại thời điểm tạo con trỏ và sử dụng tập kết quả tạm thời đó để trả về các hàng . Nếu có bất kỳ thay đổi nào được thực hiện đối với dữ liệu bảng / s ban đầu như chèn, cập nhật hoặc xóa. Con trỏ tĩnh không cập nhật tập kết quả đã lưu trữ với những thay đổi đó trừ khi chúng ta đóng con trỏ và mở lại.
Con trỏ tĩnh có thể cuộn được (Đầu tiên, Cuối cùng, Trước đó, Tiếp theo, Tương đối, Tuyệt đối)
Script cho Static Cursor trong SQL Server cũng được sử dụng trong video.
--drop table dbo.Customer Create table dbo.Customer ( CustomerId Int Identity(1,1), CustomerName VARCHAR(100), StreetAddress VARCHAr(100), City VARCHAR(100), State CHAR(2)) go --Insert couple of Records in Sample Table Insert into dbo.Customer Select 'Aamir shahzad','Test Street Address','Charlotte','NC' Union Select 'M Raza','Test Street Address','Charlotte','NC' Select * from dbo.Customer --Insert NEW Record Insert into dbo.Customer Select 'John Smith','Test Street Address','New York City','NY' --Delete Records Delete from dbo.Customer Where CustomerName in ('Aamir Shahzad','M Raza') --Update All Record Update dbo.Customer set CustomerName='NO NAME' --Cursor Script Declare @CustomerID INT Declare @CustomerNAme VARCHAR (100) DECLARE @StreetAddress VARCHAR(100) DECLARE @City VARCHAR(100) DECLARE @State CHAR(2) --DECLARE A CURSOR DECLARE CUR CURSOR STATIC FOR Select CustomerID,CustomerName,StreetAddress,City,State from dbo.Customer --OPEN CURSOR OPEN CUR Print 'CURSOR IS OPEN' --FETCH NEXT RECORD FETCH NEXT FROM CUR INTO @CustomerID,@CustomerNAme,@StreetAddress,@City,@State WHILE @@FETCH_STATUS=0 BEGIN RAISERROR ('',0,1) WITH NOWAIT WAITFOR DELAY '00:00:15' PRINT CONCAT(@CustomerID,' ',@CustomerNAme,' ',@StreetAddress,' ',@City,' ',@State) FETCH NEXT FROM CUR INTO @CustomerID,@CustomerNAme,@StreetAddress,@City,@State END CLOSE CUR DEALLOCATE CUR
Video chi tiết
về Con trỏ tĩnh trong SQL Server.