{"id":167,"date":"2006-08-15T20:53:13","date_gmt":"2006-08-15T18:53:13","guid":{"rendered":"http:\/\/www.glorf.it\/blog\/2006\/08\/15\/allgemein\/undokumentiert-aber-gut-object_id"},"modified":"2006-08-15T21:06:00","modified_gmt":"2006-08-15T19:06:00","slug":"undokumentiert-aber-gut-object_id","status":"publish","type":"post","link":"http:\/\/www.glorf.it\/blog\/2006\/08\/15\/sql-talk\/undokumentiert-aber-gut-object_id","title":{"rendered":"undokumentiert, aber gut: object_id mit Typangabe"},"content":{"rendered":"<p>Heute entdeckte ich durch Zufall, dass ein ganz tolles, dokumentiertes Feature aus dem &quot;SQL Server 2005&quot; auch schon (undokumentiert) im &quot;SQL Server 2000&quot; funktioniert.<\/p>\n<p>Bevor ich eine Procedure oder View anlege, pr&#252;fe ich immer zuerst, ob es sie schon gibt und l&#246;sche Sie dann gegebenenfalls. &quot;Fr&#252;her&quot; nutzte ich dazu die Systemtabellen, Z.B. so:<\/p>\n<p><code lang=\"sql\">if exists(select *<br \/>\n\t\tfrom sysobjects<br \/>\n\t\twhere name = N&#x0027;MyProc&#x0027;<br \/>\n\t\t  and type = N&#x0027;P')<br \/>\n\tdrop procedure MyProc<br \/>\ngo<br \/>\nCreate procedure MyProc<br \/>\nas<br \/>\n\tselect N&#x0027;tolles Beispiel&#x0027; as &quot;Info&quot;<\/code><\/p>\n<p>Nachdem ich oft genug geh&#246;rt hatte, dass man keine direkten Zugriffe auf die Systemtabellen machen soll, weil sie irgendwann (Z.B. wurde mit Yukon gedroht) abgeschafft w&#252;rden, habe ich das (v&#246;llig umsonst) umgestellt:<\/p>\n<p><code lang=\"sql\">if objectproperty(object_id(N'MyProc'), 'IsProcedure') = 1<br \/>\n\tdrop procedure MyProc<br \/>\ngo<br \/>\nCreate procedure MyProc<br \/>\nas<br \/>\n\tselect N&#x0027;tolles Beispiel&#x0027; as &quot;Info&quot;<\/code><\/p>\n<p>Heute entdeckte ich, dass auch am 2000er die Funktion object_id um den Typ erweitert werden kann:<\/p>\n<p><code lang=\"sql\">if object_id(N'MyProc', N'P') is not null<br \/>\n\tdrop procedure MyProc<br \/>\ngo<br \/>\nCreate procedure MyProc<br \/>\nas<br \/>\n\tselect N&#x0027;tolles Beispiel&#x0027; as &quot;Info&quot;<\/code><\/p>\n<p>Mit diesem schicken Feature aus dem 2005er ist es doch gleich viel handlicher&#8230; \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Heute entdeckte ich durch Zufall, dass ein ganz tolles, dokumentiertes Feature aus dem &quot;SQL Server 2005&quot; auch schon (undokumentiert) im &quot;SQL Server 2000&quot; funktioniert. Bevor ich eine Procedure oder View anlege, pr&#252;fe ich immer zuerst, ob es sie schon gibt und l&#246;sche Sie dann gegebenenfalls. &quot;Fr&#252;her&quot; nutzte ich dazu die Systemtabellen, Z.B. so: if exists(select [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/167"}],"collection":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/comments?post=167"}],"version-history":[{"count":0,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/167\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/media?parent=167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/categories?post=167"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/tags?post=167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}