﻿<?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’da Tablodaki NULL Alanların Güncelleme Kodunu Oluşturan Prosedür &#8211; SQL Server Eğitimleri</title>
	<atom:link href="https://sqlserveregitimleri.com/etiket/sql-serverda-tablodaki-null-alanlarin-guncelleme-kodunu-olusturan-prosedur/feed" rel="self" type="application/rss+xml" />
	<link>https://sqlserveregitimleri.com</link>
	<description>SQL Server ile ilgili her şey</description>
	<lastBuildDate>Sun, 12 Sep 2021 13:40:54 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>
	<item>
		<title>SQL Server’da Tablodaki NULL Alanların Güncelleme Kodunu Oluşturan Prosedür</title>
		<link>https://sqlserveregitimleri.com/sql-serverda-tablodaki-null-alanlarin-guncelleme-kodunu-olusturan-prosedur</link>
		
		<dc:creator><![CDATA[Yavuz Selim Kart]]></dc:creator>
		<pubDate>Sat, 25 Apr 2020 20:56:45 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Null alanları toplu güncellemek]]></category>
		<category><![CDATA[NULL Alanların Güncelleme Kodunu Oluşturan Prosedür]]></category>
		<category><![CDATA[SQL Server’da Tablodaki NULL Alanların Güncelleme Kodunu Oluşturan Prosedür]]></category>
		<guid isPermaLink="false">https://sqlserveregitimleri.com/?p=9792</guid>

					<description><![CDATA[Herkese merhaba, Bu yazıda SQL Server&#8217;da tablodaki NULL alanların güncelleme kodunu oluşturan prosedür hakkında bilgi vereceğim. Aslında bu şekilde bir şey yapılabilir mi diye ilk...]]></description>
										<content:encoded><![CDATA[<p>Herkese merhaba,</p>
<p>Bu yazıda SQL Server&#8217;da tablodaki <strong>NULL</strong> alanların güncelleme kodunu oluşturan prosedür hakkında bilgi vereceğim.</p>
<p>Aslında bu şekilde bir şey yapılabilir mi diye ilk başta düşündüm. Sonrasında Google&#8217;da aradım fakat bir şey bulamadım. Ben de böyle bir kod yazmaya karar verdim ki bu şekilde bir kod örneği internette de mevcut değil. Kısacası ilk ben yazmış oldum ve şu anda tektir.</p>
<p>Elinizde diyelim ki 200 kolonlu bir tablo var. Bu kadar kolon tablonuzda olabilir de olmayabilir de. Ben olabileceğini göz önünde bulundurarak bu yazıyı yazıyorum.</p>
<p>Her bir null değer içeren kolon için güncelleme kodunu yazdığınızı düşünün. Kolay olmayacaktır. Belki de ne gereği var diyorsunuz?</p>
<p>Ben NULL alan olarak genel değerleri yazdım. Siz kendinize göre düzenleyebilirsinizde.</p>
<p>Prosedür kodları aşağıdadır.</p>
<pre class="line-numbers"><code class="language-sql">--Prosedürü oluşturma

CREATE PROC NullAlanlarıGuncellemeProseduru
(@TabloAdi NVARCHAR(100))
AS
BEGIN
    SELECT t.name 'Data type',
           CASE
               WHEN t.name = 'int' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = 0 WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'varchar' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = ''''  WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'bit' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = 0 WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'datetime' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = GETDATE() WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'smallint' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = 0 WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'tinyint' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = 0 WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'nvarchar' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = ''''  WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'image' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = ''''  WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'ntext' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = ''''  WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'money' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = 0 WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'bigint' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = 0 WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'char' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = ''''  WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'date' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = GETDATE() WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'datetime2' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = GETDATE() WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'decimal' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = 0 WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'float' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = 0 WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'nchar' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = ''''  WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'real' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = 0 WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'binary' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = ''''  WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'varbinary' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = ''''  WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               WHEN t.name = 'smalldatetime' THEN
                   'UPDATE ' + @TabloAdi + ' SET ' + '[' + CAST(c.name AS VARCHAR(255)) + ']' + ' = GETDATE() WHERE '
                   + CAST(c.name AS VARCHAR(255)) + ' IS NULL'
               ELSE
                   ''
           END AS Sorgu
    FROM sys.columns c
        INNER JOIN sys.types t
            ON c.user_type_id = t.user_type_id
        LEFT OUTER JOIN sys.index_columns ic
            ON ic.object_id = c.object_id
               AND ic.column_id = c.column_id
        LEFT OUTER JOIN sys.indexes i
            ON ic.object_id = i.object_id
               AND ic.index_id = i.index_id
    WHERE c.object_id = OBJECT_ID(@TabloAdi)
          AND ISNULL(i.is_primary_key, 0) = 0;


END;

GO

--Prosedürün kullanımı

EXEC NullAlanlarıGuncellemeProseduru 'Products'; --Tablo adını yazacaksınız.</code></pre>
<p>Prosedürü oluşturup çalıştırdığınızda aşağıdaki gibi bir sonuç alacaksınız. Ben örneği <strong>Northwind</strong> veritabanı üzerinde yaptım. Siz kendi veritabanınız üzerinde deneyebilirsiniz.</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-9794 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2020/04/sql-serverda-tablodaki-null-alanlarin-guncelleme-kodunu-olusturan-prosedur-1.jpg" alt="SQL Server’da Tablodaki NULL Alanların Güncelleme Kodunu Oluşturan Prosedür" width="700" height="501" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2020/04/sql-serverda-tablodaki-null-alanlarin-guncelleme-kodunu-olusturan-prosedur-1.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2020/04/sql-serverda-tablodaki-null-alanlarin-guncelleme-kodunu-olusturan-prosedur-1-315x225.jpg 315w, https://sqlserveregitimleri.com/wp-content/uploads/2020/04/sql-serverda-tablodaki-null-alanlarin-guncelleme-kodunu-olusturan-prosedur-1-419x300.jpg 419w, https://sqlserveregitimleri.com/wp-content/uploads/2020/04/sql-serverda-tablodaki-null-alanlarin-guncelleme-kodunu-olusturan-prosedur-1-189x135.jpg 189w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>Görüldüğü üzere her bir kolon için NULL olan satırı güncelleyen Update satırı oluşturulmuş oldu. Kodu yazarken <strong>Primary Key</strong> kolonunu dahil etmedim. Bilgilerinize.</p>
<p>Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.</p>
<div class='epvc-post-count'><span class='epvc-eye'></span>  <span class="epvc-count"> 563</span><span class='epvc-label'> Kez Okundu</span></div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
