﻿<?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>Foreign Key &#8211; SQL Server Eğitimleri</title>
	<atom:link href="https://sqlserveregitimleri.com/etiket/foreign-key/feed" rel="self" type="application/rss+xml" />
	<link>https://sqlserveregitimleri.com</link>
	<description>SQL Server ile ilgili her şey</description>
	<lastBuildDate>Mon, 13 Jun 2022 20:17:57 +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&#8217;da İlgili Veritabanının Tüm Foreign Key&#8217;lerinin Yedeğini Almak</title>
		<link>https://sqlserveregitimleri.com/sql-serverda-ilgili-veritabaninin-tum-foreign-keylerinin-yedegini-almak</link>
		
		<dc:creator><![CDATA[Yavuz Selim Kart]]></dc:creator>
		<pubDate>Thu, 31 Mar 2022 17:43:44 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Foreign Key]]></category>
		<category><![CDATA[Foreign Key'lerinin Yedeğini Almak]]></category>
		<category><![CDATA[Tüm Foreign Key'lerinin Yedeğini Almak]]></category>
		<guid isPermaLink="false">https://sqlserveregitimleri.com/?p=13435</guid>

					<description><![CDATA[Herkese merhaba, Bu yazıda SQL Server&#8217;da ilgili veritabanının tüm Foreign Key&#8217;lerinin yedeğinin nasıl alınacağı hakkında bilgi vereceğim. SQL Server&#8217;da bazı durumlarda ilgili veritabanının tüm Foreign...]]></description>
										<content:encoded><![CDATA[<p>Herkese merhaba,</p>
<p>Bu yazıda SQL Server&#8217;da ilgili veritabanının tüm Foreign Key&#8217;lerinin yedeğinin nasıl alınacağı hakkında bilgi vereceğim.</p>
<p>SQL Server&#8217;da bazı durumlarda ilgili veritabanının tüm Foreign Key&#8217;lerinin yedeğini almak isteyebilirsiniz.</p>
<p>Aşağıdaki kodu kullanarak siz de bu işlemi rahatlıkla yapabilirsiniz.</p>
<pre class="line-numbers"><code class="language-sql">DECLARE @schema_name AS SYSNAME;
DECLARE @table_name AS SYSNAME;
DECLARE @constraint_name AS SYSNAME;
DECLARE @constraint_object_id AS INT;
DECLARE @referenced_object_name AS SYSNAME;
DECLARE @is_disabled AS BIT;
DECLARE @is_not_for_replication AS BIT;
DECLARE @is_not_trusted AS BIT;
DECLARE @delete_referential_action AS TINYINT;
DECLARE @update_referential_action AS TINYINT;
DECLARE @tsql AS NVARCHAR (4000);
DECLARE @tsqlPK AS NVARCHAR (4000);
DECLARE @tsqlFK AS NVARCHAR (4000);
DECLARE @fkCol AS SYSNAME;
DECLARE @pkCol AS SYSNAME;
DECLARE @col1 AS BIT;
DECLARE @referenced_schema_name AS SYSNAME;

DECLARE FKcursor CURSOR
    FOR SELECT DISTINCT OBJECT_SCHEMA_NAME(f.parent_object_id),
                 OBJECT_NAME(f.parent_object_id),
                 name,
                 OBJECT_NAME(f.referenced_object_id),
                 OBJECT_ID,
                 is_disabled,
                 is_not_for_replication,
                 is_not_trusted,
                 delete_referential_action,
                 update_referential_action,
                 OBJECT_SCHEMA_NAME(f.referenced_object_id)
        FROM     sys.foreign_keys f WITH (NOLOCK)
        ORDER BY 1, 2;

OPEN FKcursor;

FETCH NEXT FROM FKcursor INTO @schema_name, @table_name, @constraint_name, @referenced_object_name, @constraint_object_id, @is_disabled, @is_not_for_replication, 
								@is_not_trusted, @delete_referential_action, @update_referential_action, @referenced_schema_name;

WHILE @@FETCH_STATUS = 0
    BEGIN
        BEGIN
            SET @tsql = 'ALTER TABLE ' + QUOTENAME(@schema_name) + '.' + QUOTENAME(@table_name) + ' WITH CHECK ';

			SET @tsqlPK = '';
			SET @tsqlFK = '';
			DECLARE ColumnCursor CURSOR
				FOR SELECT   COL_NAME(fk.parent_object_id, fkc.parent_column_id),
								COL_NAME(fk.referenced_object_id, fkc.referenced_column_id)
					FROM     sys.foreign_keys AS fk WITH (NOLOCK)
								INNER JOIN
								sys.foreign_key_columns AS fkc WITH (NOLOCK)
								ON fk.[object_id] = fkc.constraint_object_id
					WHERE    fkc.constraint_object_id = @constraint_object_id
					ORDER BY fkc.constraint_column_id;
			OPEN ColumnCursor;
			SET @col1 = 1;
			FETCH NEXT FROM ColumnCursor INTO @fkCol, @pkCol;
			WHILE @@FETCH_STATUS = 0
				BEGIN
					IF (@col1 = 1)
					BEGIN
						SET @col1 = 0;
					END
					ELSE
					BEGIN
						SET @tsqlPK = @tsqlPK + ',';
						SET @tsqlFK = @tsqlFK + ',';
					END;

					SET @tsqlPK = @tsqlPK + QUOTENAME(@fkCol);
					SET @tsqlFK = @tsqlFK + QUOTENAME(@pkCol);

					FETCH NEXT FROM ColumnCursor INTO @fkCol, @pkCol;
				END;
			CLOSE ColumnCursor;
			DEALLOCATE ColumnCursor;

			SET @tsql = @tsql + ' ADD CONSTRAINT ' + QUOTENAME('FK_' + @table_name + '_' + @referenced_object_name +
				CASE 
					WHEN @tsqlPK = @tsqlFK  THEN '' 
					ELSE '_' + REPLACE(REPLACE(REPLACE(@tsqlPK, ',', '_'), ']', ''), '[', '')
				END
				) + ' FOREIGN KEY (' + @tsqlPK + ' ) ';
			SET @tsql = @tsql + ' REFERENCES ' + QUOTENAME(@referenced_schema_name) + '.' + QUOTENAME(@referenced_object_name) + ' (' + @tsqlFK + ')';
			SET @tsql = @tsql + ' ON UPDATE ' + CASE @update_referential_action 

			WHEN 0 THEN 'NO ACTION ' 
			WHEN 1 THEN 'CASCADE ' 
			WHEN 2 THEN 'SET NULL ' ELSE 'SET DEFAULT ' 
			END + ' ON DELETE ' + CASE @delete_referential_action 
			WHEN 0 THEN 'NO ACTION ' 
			WHEN 1 THEN 'CASCADE ' 
			WHEN 2 THEN 'SET NULL ' ELSE 'SET DEFAULT ' 
			END + CASE @is_not_for_replication 
			WHEN 1 THEN ' NOT FOR REPLICATION ' ELSE '' 
			END + ';';
        END;

        PRINT @tsql;

        FETCH NEXT FROM FKcursor INTO @schema_name, @table_name, @constraint_name, @referenced_object_name, @constraint_object_id, @is_disabled, @is_not_for_replication, 
										@is_not_trusted, @delete_referential_action, @update_referential_action, @referenced_schema_name;
    END;

CLOSE FKcursor;
DEALLOCATE FKcursor;</code></pre>
<p>Yukarıdaki kodu ilgili veritabanında çalıştırdığınızda aşağıdakine benzer bir sonuç göreceksiniz.</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-13437 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2022/03/sql-serverda-ilgili-veritabaninin-tum-foreign-keylerinin-yedegini-almak-1.jpg" alt="SQL Server'da İlgili Veritabanının Tüm Foreign Key'lerinin Yedeğini Almak" width="700" height="392" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2022/03/sql-serverda-ilgili-veritabaninin-tum-foreign-keylerinin-yedegini-almak-1.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2022/03/sql-serverda-ilgili-veritabaninin-tum-foreign-keylerinin-yedegini-almak-1-315x176.jpg 315w, https://sqlserveregitimleri.com/wp-content/uploads/2022/03/sql-serverda-ilgili-veritabaninin-tum-foreign-keylerinin-yedegini-almak-1-536x300.jpg 536w, https://sqlserveregitimleri.com/wp-content/uploads/2022/03/sql-serverda-ilgili-veritabaninin-tum-foreign-keylerinin-yedegini-almak-1-241x135.jpg 241w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>Görüldüğü üzere ilgili veritabanının tüm Foreign Key yedekleri alınmış oldu.</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"> 189</span><span class='epvc-label'> Kez Okundu</span></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SQL Server&#8217;da Tüm Tablolardaki Tüm Foreign Key&#8217;ler Nasıl Kaldırılır?</title>
		<link>https://sqlserveregitimleri.com/sql-serverda-tum-tablolardaki-tum-foreign-keyler-nasil-kaldirilir</link>
		
		<dc:creator><![CDATA[Yavuz Selim Kart]]></dc:creator>
		<pubDate>Thu, 31 Mar 2022 17:11:49 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Foreign Key]]></category>
		<category><![CDATA[Tüm Foreign Key'ler Nasıl Kaldırılır?]]></category>
		<category><![CDATA[Tüm Tablolardaki Tüm Foreign Key'ler]]></category>
		<guid isPermaLink="false">https://sqlserveregitimleri.com/?p=13431</guid>

					<description><![CDATA[Herkese merhaba, Bu yazıda SQL Server&#8217;da tüm tablolardaki tüm Foreign Key&#8217;lerin nasıl kaldırılacağı hakkında bilgi vereceğim. SQL Server&#8217;da bazı durumlarda tüm tablolardaki tüm Foreign Key&#8217;leri...]]></description>
										<content:encoded><![CDATA[<p>Herkese merhaba,</p>
<p>Bu yazıda SQL Server&#8217;da tüm tablolardaki tüm Foreign Key&#8217;lerin nasıl kaldırılacağı hakkında bilgi vereceğim.</p>
<p>SQL Server&#8217;da bazı durumlarda tüm tablolardaki tüm Foreign Key&#8217;leri kaldırmak isteyebilirsiniz.</p>
<p>Aşağıdaki kodu kullanarak siz de bu işlemi rahatlıkla yapabilirsiniz.</p>
<pre class="line-numbers"><code class="language-sql">DECLARE @Komut VARCHAR(MAX);
DECLARE cursorKomut CURSOR FOR
SELECT 'ALTER TABLE ' + OBJECT_NAME(fk.parent_object_id) + ' DROP CONSTRAINT [' + RTRIM(fk.name) + '];'
FROM sys.foreign_keys fk;

OPEN cursorKomut;

FETCH NEXT FROM cursorKomut
INTO @Komut;

WHILE @@FETCH_STATUS = 0
BEGIN

    EXEC (@Komut);

    FETCH NEXT FROM cursorKomut
    INTO @Komut;
END;

CLOSE cursorKomut;
DEALLOCATE cursorKomut;</code></pre>
<p>Yukarıdaki kodu ilgili veritabanında çalıştırdığınız anda tüm Foreign Key&#8217;ler kalkmış olacaktır.</p>
<p><strong><span style="color: #ff0000;">Not</span> </strong>: İşlemin sorumluluğu size aittir.</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"> 326</span><span class='epvc-label'> Kez Okundu</span></div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
