﻿
{"id":174,"date":"2012-03-13T21:12:47","date_gmt":"2012-03-13T21:12:47","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=174"},"modified":"2012-04-27T16:49:50","modified_gmt":"2012-04-27T16:49:50","slug":"transact-sql-view","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/transact-sql-view\/","title":{"rendered":"Transact Sql-View"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Bu yaz\u0131mda sizlere T-SQL de V\u0130EW yap\u0131s\u0131ndan bahsedece\u011fim.Kullan\u0131m ama\u00e7lar\u0131 genellikle karma\u015f\u0131k sorgular\u0131n tek bir sorgu \u00fczerinden \u00e7al\u0131\u015ft\u0131r\u0131labilmesidir.Bu ama\u00e7la raporlama i\u015flemlerinde kullan\u0131labilir.Ayn\u0131 zamanda g\u00fcvenlik ihtiyac\u0131 oldu\u011funda, herhangi bir sorgunun di\u011fer \u015fah\u0131slardan gizlenmesi amac\u0131yla da kullan\u0131l\u0131rlar.<br \/>\nHerhangi bir sorgunun sonucu tablo olarak ele al\u0131p, ona sorgu \u00e7ekilebilmesini sa\u011flarlar.<br \/>\nInsert,update ve delete yapabilirler.Bu i\u015flemin sonucunu fiziksel sorguya yans\u0131t\u0131rlar.(Bu madde \u00f6nemlidir.)<br \/>\nView ler normal sorgulardan daha yava\u015f \u00e7al\u0131\u015f\u0131rlar.<br \/>\n<!--more--><\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ncreate view vw_Gotur\r\nas\r\nselect p.Adi as Ad\u0131,k.KategoriAdi as &#x5B;Kategori Ad\u0131],COUNT(s.SatisID) as &#x5B;Toplam Sat\u0131\u015f]\r\nfrom Personeller as p inner join Satislar as s\r\non p.PersonelID=s.PersonelID inner join &#x5B;Satis Detaylari] as sd\r\non s.SatisID=sd.SatisID inner join Urunler as u\r\non sd.UrunID=u.UrunID inner join Kategoriler as k\r\non u.KategoriID=k.KategoriID\r\ngroup by p.Adi,k.KategoriAdi\r\nselect * from vw_Gotur\r\nselect * from vw_Gotur where Ad\u0131='Andrew'\r\n<\/pre>\n<hr \/>\n<p>View olu\u015fturulurken kolonlara verilen aliaslar,view den sorgu \u00e7ekilirken kullan\u0131l\u0131rlar.<br \/>\nView \u0131n kulland\u0131\u011f\u0131 ger\u00e7ek tablolar\u0131n kolon isimleri,view i\u00e7inde \u201cas\u201d ile alias yap\u0131larak gizlenmi\u015f olur.<br \/>\nView i\u00e7ide order by kullan\u0131lamaz.<br \/>\nOrder by view i\u00e7inde de\u011fil,view \u00e7al\u0131\u015f\u0131rken view ile beraber kullan\u0131lmal\u0131d\u0131r.<br \/>\nE\u011fer illaki ben view i\u00e7inde order by kullanacam karde\u015fim diyorsan\u0131z,view i\u00e7inde top kullanmal\u0131s\u0131n\u0131z.Buda tavsiye edilen bir durum de\u011fildir.<\/p>\n<hr \/>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ngo\r\ncreate view denemeadsad\r\nas\r\nselect top 5 Adi,SoyAdi from Personeller order by Adi\r\n<\/pre>\n<hr \/>\n<p>Viewler \u00fczerinde insert,update,delete v.s. gibi i\u015flemler yapabiliriz.Bu i\u015flemlerin sonucu viewin kulland\u0131\u011f\u0131 ger\u00e7ek tabloya yans\u0131t\u0131l\u0131r.<\/p>\n<hr \/>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ncreate view deneme23\r\nas\r\nselect Adi as Ad\u0131,SoyAdi as Soyad\u0131 from Personeller\r\ninsert deneme23 values('123','456')\r\ndelete from deneme23 where Soyad\u0131='456'\r\nupdate deneme23 set Soyad\u0131='Gen\u00e7ay' where Soyad\u0131='Y\u0131ld\u0131z'\r\n<\/pre>\n<hr \/>\n<p>E\u011fer view i olu\u015fturan komutlar\u0131n, Views klas\u00f6r\u00fcnden \u00fczerine sa\u011f t\u0131klay\u0131p Design modda a\u00e7\u0131larak g\u00f6r\u00fcnt\u00fclenmesini istemiyorsak \u201cwith encryption\u201d komutu ile viewi olu\u015fturmal\u0131y\u0131z.<br \/>\nNot:\u201dwith encryption\u201d i\u015fleminden sonra viewi olu\u015fturan da dahil kimse komutlar\u0131 g\u00f6remez.Geri d\u00f6n\u00fc\u015f yoktur.Ancak viewi olu\u015fturan komutlar\u0131n yede\u011fini bulundurmal\u0131y\u0131z ya da bu komutlar\u0131 \u201cwith encryption\u201d olmadan alter lamal\u0131y\u0131z.<br \/>\nBir dikkat etmemiz gereken nokta da \u201cwith encryption\u201d ifadesini \u201cas\u201d ifadesinden \u00f6nce yazmal\u0131y\u0131z.<\/p>\n<hr \/>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ncreate view denemeview\r\nwith encryption\r\nas\r\nselect Adi as ADI,SoyAdi as SOYADI from Personeller\r\n<\/pre>\n<hr \/>\n<p>Bu i\u015flemi yapt\u0131ktan sonra Design modu kapat\u0131lm\u0131\u015ft\u0131r.<br \/>\nNOT!!! : E\u011fer view in kulland\u0131\u011f\u0131 tablolar\u0131n kolon isimleri bir \u015fekilde de\u011fi\u015ftirilir,kolonlar\u0131 silinir ya da tablo yap\u0131s\u0131 bir \u015fekilde de\u011fi\u015fikli\u011fe u\u011frar ise view in \u00e7al\u0131\u015fmas\u0131 art\u0131k m\u00fcmk\u00fcn olmayacakt\u0131r.View in kulland\u0131\u011f\u0131 tablolar ve kolonlar\u0131 bu tarz i\u015flemler yap\u0131labilmesi ihtimaline kar\u015f\u0131 koruma alt\u0131na al\u0131nabilir.Bu i\u015flemler \u201cwith schemabinding\u201d komutu ile yap\u0131labilir.<br \/>\n\u201cwith schemabinding\u201d ile view create ya da alter edilirken,viewin kulland\u0131\u011f\u0131 tablo,schema ad\u0131yla birlikte verilmelidir.<br \/>\n\u00d6rne\u011fin , dbo(database owner) bir \u015fema ad\u0131d\u0131r.\u015eemalar C# taki namespaceler gibi d\u00fc\u015f\u00fcn\u00fclebilir.<\/p>\n<hr \/>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ncreate view denemeview2\r\nwith schemabinding\r\nas\r\nselect Adi,SoyAdi from dbo.Personeller\r\ngo\r\ncreate view denemeview3\r\nas\r\nselect Adi,SoyAdi from Personeller where Adi like 'a%'\r\n<\/pre>\n<hr \/>\n<p>Yukar\u0131daki view Personeller tablosundan ba\u015f harfi a ile ba\u015flayanlar\u0131n ad\u0131n\u0131 ve soyad\u0131n\u0131 getiriyor.<br \/>\nHatta bu view e insert yapal\u0131m.<\/p>\n<hr \/>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ninsert denemeview3 values('Ahmet','Y\u0131ld\u0131z'),\r\n('Gen\u00e7ay','Y\u0131ld\u0131z')\r\n<\/pre>\n<hr \/>\n<p>\u201cdenemeview3\u201d isimli view imiz ad\u0131 \u201ca\u201d ile ba\u015flayan kay\u0131tlar\u0131 getirmektedir.Bu durum da bu viewi kullanarak ba\u015f harfi \u201cc\u201d ile ba\u015flayan bir veri kay\u0131t etmek mant\u0131ks\u0131z gelebilir.Bu durumda view in where \u015fart\u0131na uygun kay\u0131tlar\u0131 i\u015flemesine m\u00fcsaade edip,uymayan kay\u0131tlar\u0131 i\u015flememesine m\u00fcsaade etmeyebiliriz.\u201dwith check option\u201d komutu ile bu sa\u011flanabilir.<\/p>\n<hr \/>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ngo\r\ncreate view denemeview4\r\nas\r\nselect Adi,SoyAdi from Personeller where Adi like 'a%'\r\nwith check option\r\n<\/pre>\n<hr \/>\n<p>NOT: \u201cwith encryption\u201d ve \u201cwith schemabinding\u201d komutlar\u0131 \u201cas\u201d komutundan \u00f6nce gelirken \u201cwith check option\u201d komutu where \u015fart\u0131ndan sonra gelmektedir.<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Bu yaz\u0131mda sizlere T-SQL de V\u0130EW yap\u0131s\u0131ndan bahsedece\u011fim.Kullan\u0131m ama\u00e7lar\u0131 genellikle karma\u015f\u0131k sorgular\u0131n tek bir sorgu \u00fczerinden \u00e7al\u0131\u015ft\u0131r\u0131labilmesidir.Bu ama\u00e7la raporlama i\u015flemlerinde kullan\u0131labilir.Ayn\u0131 zamanda g\u00fcvenlik ihtiyac\u0131 oldu\u011funda, herhangi bir sorgunun di\u011fer \u015fah\u0131slardan gizlenmesi amac\u0131yla da kullan\u0131l\u0131rlar.&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22],"tags":[120],"class_list":["post-174","post","type-post","status-publish","format-standard","hentry","category-veritabani","tag-view"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=174"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/174\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=174"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=174"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}