<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SQL Server Cursor - MSSQL Query</title>
	<atom:link href="https://mssqlquery.com/tag/sql-server-cursor/feed" rel="self" type="application/rss+xml" />
	<link>https://mssqlquery.com</link>
	<description>MSSQL and TSQL Programming and TSQL Examples</description>
	<lastBuildDate>Fri, 07 Apr 2023 19:11:30 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.3.1</generator>

<image>
	<url>https://mssqlquery.com/wp-content/uploads/2023/06/cropped-mssql-query-icon-32x32.png</url>
	<title>SQL Server Cursor - MSSQL Query</title>
	<link>https://mssqlquery.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>What Are Cursor Types in SQL Server and When Are They Used?</title>
		<link>https://mssqlquery.com/what-are-cursor-types-in-sql-server-and-when-are-they-used</link>
		
		<dc:creator><![CDATA[Yavuz Selim Kart]]></dc:creator>
		<pubDate>Sun, 02 Apr 2023 11:15:08 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Cursor]]></category>
		<category><![CDATA[SQL Server Cursor Type]]></category>
		<category><![CDATA[SQL Server Cursors]]></category>
		<guid isPermaLink="false">https://mssqlquery.com/?p=1479</guid>

					<description><![CDATA[<p>Hello everyone, In this article I will try to give information about the types of Cursors in SQL Server and when they are used. There are 4 types of cursors in SQL Server: Forward-Only, Static, Dynamic and Keyset. Forward-Only Cursors A type of cursor that only allows the resulting result&#46;&#46;&#46;</p>
<p>The post <a href="https://mssqlquery.com/what-are-cursor-types-in-sql-server-and-when-are-they-used">What Are Cursor Types in SQL Server and When Are They Used?</a> first appeared on <a href="https://mssqlquery.com">MSSQL Query</a>.</p>]]></description>
										<content:encoded><![CDATA[<section class="lmt__side_container lmt__side_container--target" aria-labelledby="translation-results-heading">
<div class="lmt__textarea_container">
<div class="lmt__inner_textarea_container" title="Alternatif çevirileri görmek için kelimeye tıkla">
<div tabindex="0" role="textbox" contenteditable="true" aria-multiline="true" aria-disabled="false" aria-labelledby="translation-results-heading">
<p>Hello everyone,</p>
<p>In this article I will try to give information about the types of Cursors in SQL Server and when they are used.</p>
<p>There are 4 types of cursors in SQL Server: Forward-Only, Static, Dynamic and Keyset.</p>
<p><strong>Forward-Only Cursors</strong></p>
<p>A type of cursor that only allows the resulting result set to move in one direction, i.e. forward, and cannot be moved backwards or back again. Forward-Only Cursors traverse data only once and are usually locked so that the next line can be read. Forward-Only Cursors are ideal in a scenario where data needs to be read once.</p>
<p>Forward-Only Cursors are designed to process each row in the result set sequentially. Moving forward increases processing speeds and minimizes memory usage. Therefore, Forward-Only Cursors are preferred to avoid performance issues when working with large datasets.</p>
<p>Forward-Only Cursors are locked so that the next line can be read. This is useful if there are operations that need to be completed by the database before the Cursor can advance to the next row. However, if there is a lock while it cannot read the next row, it can cause performance issues because other operations have to wait.</p>
<p>Overall, Forward-Only Cursors provide a fast and efficient way to process data sequentially. However, they do not provide the flexibility of other types of Cursors that can move forward.</p>
<p><strong>Static Cursors</strong></p>
<p>Static Cursors are a type of cursor where copies of the data are kept in memory and the data cannot be updated. Each row in the result set represents a snapshot of the Cursor taken at the time it was created and is processed sequentially as the Cursor moves forward. When data is changed, the copies are not updated and as a result the original data remains unchanged.</p>
<p>Because Static Cursors store a copy of data in memory, you can access the data in the result set once. For this reason, Static Cursors are ideal for processing a small dataset of query results and can cause performance issues when working with large datasets.</p>
<p>Static Cursors do not lock on the database to process each row and the order of rows in the result set always remains the same. Therefore, they can be used to link the results of queries and reuse the result set. However, when the result of the query is changed, the result of the Static Cursor is not changed and the result set is not updated.</p>
<p>Static Cursors do not allow data to be updated and therefore cannot handle changes in the database. However, they allow Cursor to process data sequentially in a fast and high-performance way and are ideal for reuse of query results.</p>
</div>
<div id="target-dummydiv" class="lmt__textarea lmt__textarea_dummydiv" lang="en-US" aria-hidden="true">
<p><strong>Dynamic Cursors</strong></p>
<p>Dynamic Cursors are a type of cursor that works by using a snapshot of the data in the table and can dynamically change the data in the result set depending on the outcome of the query. This means that when data is updated, these changes are also reflected by dynamic Cursors.</p>
<p>Dynamic Cursors allow updating data and processing changes in the database. Cursor movements are determined based on a snapshot of the data in the result set. However, this type of cursor is disadvantageous in terms of performance when working with large datasets.</p>
<p>Dynamic Cursors are useful when you want to reuse data in the result set. They can also be used to combine the result of a query with other operations. However, they should be avoided whenever possible, as they can cause performance issues when working with large datasets.</p>
<p>Dynamic Cursors can be used in combination with Forward-Only Cursors to increase processing speed. If the query result has a small data set, it is also possible to use Dynamic Cursors instead of Static Cursors. However, if there is no need to reuse data, Static Cursor may be a better choice.</p>
<p><strong>Keyset Cursors</strong></p>
<p>Keyset Cursors are a type of cursor that sorts and moves data by specifying a set of keys. The position of the cursor is determined by the keyset. When data is updated, this cursor type is affected by the changes.</p>
<p>Keyset Cursors provide a performance advantage when working with large data sets. Thanks to the keyset, it is faster for the Cursor to move to a specific position and it is possible to process data with one read of the data in the result set.</p>
<p>Keyset Cursors can be used in combination with Forward-Only Cursors and Dynamic Cursors. In scenarios where data is updated, using Dynamic Cursors can provide a performance advantage. However, when you only need to process data once, using it with Forward-Only Cursors may be a better choice.</p>
<p>Keyset Cursors are useful when you want to reuse the query result. They can also be used to combine the result of the query with other operations. However, it should be noted that because Cursor uses ordered data, Cursor may encounter errors if the order of the data in the result set is changed.</p>
<p>Overall, Keyset Cursors are a useful type of Cursor for sorting and manipulating data, with a performance advantage when working with large datasets. However, it can cause errors if the order of the data is changed and therefore, it should be used in the right scenario.</p>
<p>Good luck to everyone in their working life and life.</p>
</div>
</div>
</div>
</section>
<div class='epvc-post-count'><span class='epvc-eye'></span>  <span class="epvc-count"> 61</span><span class='epvc-label'> Views</span></div><p>The post <a href="https://mssqlquery.com/what-are-cursor-types-in-sql-server-and-when-are-they-used">What Are Cursor Types in SQL Server and When Are They Used?</a> first appeared on <a href="https://mssqlquery.com">MSSQL Query</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cursor Disconnecting Database Before Detach Operation in SQL Server</title>
		<link>https://mssqlquery.com/cursor-disconnecting-database-before-detach-operation-in-sql-server</link>
		
		<dc:creator><![CDATA[Yavuz Selim Kart]]></dc:creator>
		<pubDate>Mon, 21 Feb 2022 20:04:54 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Cursor Disconnecting]]></category>
		<category><![CDATA[Operation in SQL Server]]></category>
		<category><![CDATA[SQL Server Cursor]]></category>
		<guid isPermaLink="false">https://mssqlquery.com/?p=658</guid>

					<description><![CDATA[<p>Hello everyone, In this article, I will talk about the use of cursor that disconnects the database before detach in SQL Server. Actually I wrote this Cursor on a question. Thinking it might be useful to someone. While detaching in SQL Server, you may encounter errors upon connection. These errors&#46;&#46;&#46;</p>
<p>The post <a href="https://mssqlquery.com/cursor-disconnecting-database-before-detach-operation-in-sql-server">Cursor Disconnecting Database Before Detach Operation in SQL Server</a> first appeared on <a href="https://mssqlquery.com">MSSQL Query</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Hello everyone,</p>
<p>In this article, I will talk about the use of cursor that disconnects the database before detach in SQL Server.</p>
<p>Actually I wrote this Cursor on a question. Thinking it might be useful to someone.</p>
<p>While detaching in SQL Server, you may encounter errors upon connection. These errors can be solved with short written codes, or you can solve them using the Cursor I have written below.</p>
<pre class="line-numbers"><code class="language-sql">DECLARE @dbname AS VARCHAR(80);
DECLARE @server_name AS VARCHAR(20);
SELECT @server_name = @@servername;
DECLARE rs_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name IN ( N'TestIslem' ); --In this section, you can select as many databases as you want. 
OPEN rs_cursor;
FETCH NEXT FROM rs_cursor
INTO @dbname;
IF @@FETCH_STATUS &lt;&gt; 0
    PRINT 'There is no database to terminate the connection... Please check your script!!!';
WHILE @@FETCH_STATUS = 0
BEGIN
    EXEC ('ALTER DATABASE ' + @dbname + ' SET SINGLE_USER WITH ROLLBACK IMMEDIATE');
    EXEC ('ALTER DATABASE ' + @dbname + ' SET SINGLE_USER WITH ROLLBACK AFTER 60 SECONDS');
    EXEC ('ALTER DATABASE ' + @dbname + ' SET MULTI_USER');
    FETCH NEXT FROM rs_cursor
    INTO @dbname;
    PRINT 'Print ''SERVER NAME : ' + UPPER(@server_name) + '--&gt; Successfully disconnected for all databases.''';
END;
CLOSE rs_cursor;
DEALLOCATE rs_cursor;</code></pre>
<p>When you run the code, where I used a database called TestIslem. This will terminate any open connections on the database. In this way, you will successfully perform the detach process.</p>
<p>Good luck to everyone in business and life.</p>
<div class='epvc-post-count'><span class='epvc-eye'></span>  <span class="epvc-count"> 175</span><span class='epvc-label'> Views</span></div><p>The post <a href="https://mssqlquery.com/cursor-disconnecting-database-before-detach-operation-in-sql-server">Cursor Disconnecting Database Before Detach Operation in SQL Server</a> first appeared on <a href="https://mssqlquery.com">MSSQL Query</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
