vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik:    |   VB-Versionen: VB2008, VB2010, VB201201.09.14
SELECT-Anweisungen zur Datentabellen-Struktur (SQL 2012)

Es werden zwei SELECT-Anweisungen für die Informationsgewinnung zur Struktur einer spezifischen Datentabelle gezeigt.

Autor:  Dietrich HerrmannBewertung:     [ Jetzt bewerten ]Views:  1.578 
ohne HomepageSystem:  Win7, Win8, Win10, Win11kein Beispielprojekt 

Die zwei nachfolgend gezeigten SELECT-Anweisungen für SQL2012 gestatten die Ermittlung

  1. von Strukturdaten und
  2. des Namens der PrimaryKey-Spalte

einer durch 'MeineTabelle' spezifizierten Datentabelle einer Datenbank.

Die Anweisungen übergebe ich gleich in VB-Code;
der Tabellenname muss bei der Anwendung entsprechend an der Stelle 'MeineTabelle' modifiziert werden.

1. Struktur:

Dim structSel As String = _
  "SELECT COL.name AS column_name, ST.name AS data_type, " & _
  "COL.max_length AS character_maximum_length, COL.precision AS numeric_precision, " & _
  "COL.scale AS numeric_scale, COL.is_nullable AS nullable, COL.is_computed AS computed, " & _
  "SCC.definition AS formula " & _
  "FROM sys.tables AS TBL " & _
  "INNER JOIN sys.columns AS COL ON TBL.object_id = COL.object_id " & _
  "INNER JOIN sys.types AS ST ON COL.system_type_id = ST.system_type_id " & _
  "LEFT OUTER JOIN INFORMATION_SCHEMA.COLUMNS AS ISC " & _
  "ON COL.name = ISC.COLUMN_NAME AND TBL.name = ISC.TABLE_NAME " & _
  "LEFT OUTER JOIN sys.computed_columns AS SCC ON COL.object_id = SCC.object_id " & _
  "AND COL.column_id = SCC.column_id " & _
  "WHERE (TBL.name = 'MeineTabelle') AND (ST.name <> 'sysname') " & _
  "ORDER BY ISC.ORDINAL_POSITION"

2. Spalte PrimaryKey:

Dim keySel As String = _
  "SELECT Col.COLUMN_NAME " & _
  "FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS Tab " & _
  "INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS Col " & _
  "ON Tab.CONSTRAINT_NAME = Col.CONSTRAINT_NAME AND Tab.TABLE_NAME = Col.TABLE_NAME " & _
  "WHERE (Tab.CONSTRAINT_TYPE = 'PRIMARY KEY') AND (Col.TABLE_NAME = 'MeineTabelle')"