{"id":227,"date":"2006-10-14T20:08:14","date_gmt":"2006-10-14T18:08:14","guid":{"rendered":"http:\/\/www.glorf.it\/blog\/2006\/10\/14\/sql-talk\/sql-server-2005-definition-von-system-objekten-ansehen"},"modified":"2006-10-14T20:08:14","modified_gmt":"2006-10-14T18:08:14","slug":"sql-server-2005-definition-von-system-objekten-ansehen","status":"publish","type":"post","link":"http:\/\/www.glorf.it\/blog\/2006\/10\/14\/sql-talk\/sql-server-2005-definition-von-system-objekten-ansehen","title":{"rendered":"SQL Server 2005: Definition von System-Objekten ansehen"},"content":{"rendered":"<p>Beim SQL Server 2005 kann bekanntlich die Systemtabellen nicht direkt Zugreifen und schon gar bearbeiten. Man sieht sie noch nicht mal. Die &quot;echten&quot; Systemtabellen stehen auch nicht mehr in der Master-Datenbank, sondern in der versteckten Datenbank MsSqlSystemResource. Man kann deren Dateien im Data-Verzeichnis sehen, das ist aber auch schon alles: mssqlsystemresource.mdf\/ldf.<\/p>\n<p>Stattdessen gibt es jede Menge Views, die man f&#252;r den lesenden Zugriff nutzen kann:<\/p>\n<ul>\n<li>Die <strong>guten alten &quot;Systemtabellen&quot;<\/strong> von fr&#252;heren Versionen werden als Views abgebildet, z.B. sysobjects. Allerdings enthalten die Views keine Informationen &#252;ber neue Features, einige Attribute, die nicht mehr zutreffende Infos enthalten w&#252;rden enthalten immer NULL.<\/li>\n<li>Die <strong>ANSI-Views<\/strong> gibt es weiterhin, z.B. INFORMATION_SCHEMA.TABLES. Hier hat sich meines Wissens nichts ge&#228;ndert.<\/li>\n<li>Die neuen <strong>System Management Views<\/strong>, die die alten Systemtabellen abl&#246;sen sollen, z.B. sys.objects. Sie sind vergleichsweise sprechend und lehnen sich sehr stark an die alten Systemtabellen an. Sie gefallen mir ganz gut.<\/li>\n<li>Die neuen <strong>Dynamic Management Views<\/strong> enthalten alle m&#246;glichen Laufzeitinformationen. So etwas gab es fr&#252;her auch schon, z.B. die ehemaligen sysprocesses. Ein Beispiel f&#252;r die Neuen ist sys.dm_exec_connections. Hier stehe ich noch am Anfang, aber das Konzept gef&#228;llt mir.<\/li>\n<\/ul>\n<p>Bei meinem Bestreben die internen Abl&#228;ufe des Systems zu verstehen waren mit beim SQL-Server immer die Quelltexte der Systemproceduren bzw. die View-Definitionen sehr hilfreich. Lange Zeit dachte ich, es g&#228;be keine M&#246;glichkeit mir die Definitionen der Systemviews anzusehen. Aber im SQl-Server-Magazine las ich neulich, wie es geht: mit der Funktion &quot;object_definition&quot;.<\/p>\n<p><code lang=\"sql\">-- Definition von System-Objekten ansehen:<br \/>\nSELECT object_definition(object_id(&#x0027;dbo.sysobjects&#x0027;))<\/code><\/p>\n<p>Damit man im &quot;SQL Server Management Studio&quot; wirklich etwas sehen kann, sollte man die Ergebnisse als Text ansehen im Men&#252; &quot;Query | Results To | Results To Text&quot; oder mit Strg+t und die maximal dargestellte Zeichenzahl pro Spalte auf 8192 setzen.<br \/>\nDazu im Men&#252; unter &quot;Tools | Options&quot; im Fenster &quot;Options&quot; links &quot;Query Results | SQL Server | Results To Text&quot; f&#252;r den Wert &quot;Maximum number of characters displayed in each column&quot; den Wert &quot;8192&quot; w&#228;hlen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Beim SQL Server 2005 kann bekanntlich die Systemtabellen nicht direkt Zugreifen und schon gar bearbeiten. Man sieht sie noch nicht mal. Die &quot;echten&quot; Systemtabellen stehen auch nicht mehr in der Master-Datenbank, sondern in der versteckten Datenbank MsSqlSystemResource. Man kann deren Dateien im Data-Verzeichnis sehen, das ist aber auch schon alles: mssqlsystemresource.mdf\/ldf. Stattdessen gibt es jede [&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\/227"}],"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=227"}],"version-history":[{"count":0,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/227\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/media?parent=227"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/categories?post=227"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/tags?post=227"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}