{"id":549,"date":"2007-04-27T20:00:19","date_gmt":"2007-04-27T18:00:19","guid":{"rendered":"http:\/\/www.glorf.it\/blog\/2007\/04\/27\/sql-talk\/sql-tools\/sql-server-go-10"},"modified":"2007-04-27T20:01:20","modified_gmt":"2007-04-27T18:01:20","slug":"sql-server-go-10","status":"publish","type":"post","link":"http:\/\/www.glorf.it\/blog\/2007\/04\/27\/sql-talk\/sql-tools\/sql-server-go-10","title":{"rendered":"SQL-Server: GO 10"},"content":{"rendered":"<p>Was ich gerade bei Jon Galloway im Artikel &quot;<a href=\"http:\/\/weblogs.asp.net\/jgalloway\/archive\/2007\/04\/25\/sql-using-go-100-to-execute-a-batch-100-times.aspx\">Using &#x0027;GO 100&#x0027; to execute a batch 100 times<\/a>&quot; las, habe ich nicht gewusst. Microsoft hat in die Werkzeuge des SQL-Servers-2005 ein nettes und undokumentiertes Feature eingebaut: Ein Batch wird in einer Schleife mehrfach wiederholt. Echt cool!<\/p>\n<p>Mal ein Beispiel:<\/p>\n<p><code lang=\"sql\">print 'Hello'<br \/>\ngo 10<\/code><\/p>\n<p>liefert als Ergebnis im Message-Window des Management-Studio:<\/p>\n<p><code>Beginning execution loop<br \/>\nHello<br \/>\nHello<br \/>\nHello<br \/>\nHello<br \/>\nHello<br \/>\nHello<br \/>\nHello<br \/>\nHello<br \/>\nHello<br \/>\nHello<br \/>\nBatch execution completed 10 times.<\/code><\/p>\n<p>Das geht genauso im sqlcmd (allerdings ohne &quot;Beginning execution loop&quot; und &quot;Batch execution completed x times.&quot;) und im mitgelieferten osql (mit &quot;x xacts:&quot; am Ende).<\/p>\n<p>Das &quot;<a href=\"http:\/\/msdn2.microsoft.com\/en-us\/library\/ms188037.aspx\">go<\/a>&quot; ist ein reiner Steuerungsbefehl f&#252;r die Werkzeuge und dient dazu zwei Batches hintereinander an den SQL-Server zu schicken. Das wurde jetzt aufgebohrt.<\/p>\n<p>Tats&#228;chlich gibt es dazu einige n&#252;tzliche Anwendungen:<\/p>\n<ul>\n<li>Wenn man mal eben schnell ein paar hundert Datens&#228;tze einf&#252;gen will und keinen Bock auf eine <a href=\"http:\/\/www.glorf.it\/blog\/2007\/02\/01\/sql-talk\/sql-effizient-daten-erzeugen\">Schleife<\/a> hat.<\/li>\n<li>Protokollieren von dynamischen System-Eigenschaften, wie die <a href=\"http:\/\/www.glorf.it\/blog\/2007\/04\/04\/sql-talk\/performance\/sql-server-wait-events\">Wait Events<\/a> oder Informationen &#252;ber Blockierungen<\/li>\n<li>Wenn man den SQL-Server unter Last setzen will, um das Verhalten des Systems zu beobachten.<\/li>\n<\/ul>\n<p>Risiken und Nebenwirkungen: Weil es undokumentiert ist, haftet Microsoft f&#252;r nix und beh&#228;lt sich vor, das tolle Feature jederzeit wieder einklappen zu k&#246;nnen. Das f&#228;nde ich allerdings ziemlich schade&#8230;<\/p>\n<div class=\"small\">gefunden bei <a href=\"http:\/\/www.larkware.com\/dg8\/TheDailyGrind1130.aspx\">TheDailyGrind<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Was ich gerade bei Jon Galloway im Artikel &quot;Using &#x0027;GO 100&#x0027; to execute a batch 100 times&quot; las, habe ich nicht gewusst. Microsoft hat in die Werkzeuge des SQL-Servers-2005 ein nettes und undokumentiertes Feature eingebaut: Ein Batch wird in einer Schleife mehrfach wiederholt. Echt cool! Mal ein Beispiel: print &#x0027;Hello&#x0027; go 10 liefert als Ergebnis [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[14],"tags":[],"_links":{"self":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/549"}],"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=549"}],"version-history":[{"count":0,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/549\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/media?parent=549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/categories?post=549"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/tags?post=549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}