Die zwei nachfolgend gezeigten SELECT-Anweisungen für SQL2012 gestatten die Ermittlung
einer durch 'MeineTabelle' spezifizierten Datentabelle einer Datenbank. Die Anweisungen übergebe ich gleich in VB-Code; 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')" |