AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi [SQL2k5] Systemkatalog: Default-Werte?
Thema durchsuchen
Ansicht
Themen-Optionen

[SQL2k5] Systemkatalog: Default-Werte?

Ein Thema von Phoenix · begonnen am 15. Okt 2007 · letzter Beitrag vom 15. Okt 2007
Antwort Antwort
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#1

[SQL2k5] Systemkatalog: Default-Werte?

  Alt 15. Okt 2007, 08:32
Datenbank: Microsoft SQL Server • Version: 2005 • Zugriff über: SDAC
Ich will mittels DDL-Statements die Systemkataloge abfragen, um zur Programmlaufzeit die Struktur der Datenbank zu erfahren.

Nun benötige ich eine Methode, den Default-Wert einer Spalte auszulesen.

Die sys.columns View gibt mir eine Default-Object-Id zurück. Nur: Was mache ich mit der?
Doku der Sys.Columns View im MSDN
Zitat von MSDN:
default_object_id
ID des Standardobjekts, unabhängig davon, ob das Objekt ein eigenständiges Objekt vom Typ sys.sp_bindefault ist oder eine DEFAULT-Inlineeinschränkung auf Spaltenebene. Die parent_object_id-Spalte eines DEFAULT-Inlineobjekts ist ein Verweis auf die Tabelle selbst.

0 = Kein Standard.
Im weiteren schweigt sich die Doku jedoch `leider vollkommen darüber aus, was eine Default-Inlineeinschränkung ist, bzw. was ein Default-Inlineobjekt ist und wie man diese Werte von der Datenbank abfragt. Darüber gibt es absolut null informationen, weder im MSDN noch bei Google.

Hat das schonmal jemand gemacht und hat mir da einen Tip?
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#2

Re: [SQL2k5] Systemkatalog: Default-Werte?

  Alt 15. Okt 2007, 08:49
Ach, verdammich. Hat sich erledigt. Ich hab grad mal raustracen lassen, was der Toad für SQL Server absetzt um das in Erfahrung zu bringen...

SQL-Code:
SELECT
  clmns.name AS [ColumnName],
  (
    select
      case
        when obj.parent_object_id <= 0
        then SCHEMA_NAME(obj.schema_id) + N'.' + obj.name
        else (select defs.definition
              from sys.default_constraints AS defs
              where defs.object_id = obj.object_id)
      end
    from sys.objects as obj
    where obj.object_id = clmns.default_object_id
  ) AS [Defaults]
FROM
  sys.tables AS tbl INNER JOIN sys.all_columns AS clmns ON clmns.object_id = tbl.object_id
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz