Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Jenis Kursor SQL Server - Kursor Dinamis | Tutorial SQL Server / Tutorial TSQL

Kursor adalah objek yang memungkinkan kita mengakses data baris demi baris dari kumpulan hasil.

Kursor Dinamis dapat diperbarui. Kursor dinamis akan mengambil perubahan (menyisipkan, memperbarui, atau menghapus) pada setiap pengambilan saat kursor terbuka jika ada modifikasi yang terjadi pada data asli dalam tabel. Jenis Kursor ini berguna ketika kita ingin mengekstrak record dari tabel asli saat kursor terbuka dan kita masih dalam proses modifikasi data atau menyisipkan record baru dan ingin memasukkannya ke dalam hasil kursor yang disetel untuk melakukan operasi.

Kursor dinamis dapat digulir (Pertama, Terakhir, Sebelumnya, Berikutnya, Relatif) tetapi mutlak opsi tidak bekerja dengan Kursor dinamis.

Skrip untuk Kursor Dinamis di SQL Server juga digunakan dalam 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
DYNAMIC
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
 
Silakan tonton video Demo Detail Kursor Dinamis di SQL Server.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa menentukan di SQL Server jika rentang dateTime tumpang tindih dengan yang lain?

  2. Cara Mengeksekusi SQL Query tanpa Menampilkan hasil

  3. Sambungan berhasil dibuat dengan server, tetapi kemudian terjadi kesalahan selama jabat tangan pra-login

  4. Cuplikan Basis Data SQL Server -3

  5. Tetapkan nama file secara dinamis ke string koneksi excel