Ich stehe vor dem Problem, zu einer SP die die Felder Namen, Type und Primary Key so erweitert, dass sie auch noch die Beschreibung ausliest.
So sah sie vorher aus.
Ich habe jetzt einfach das Ergebniss von dazugejoined:
Jetzt steh ich vor der Situation, dass ich den ganzen Nachmittag herumprobiert habe aber absolut nichts funktioniert...
Vielleicht könnte sich irgendwer den Code anschauen, es wäre mir wirklich eine große Hilfe.
mfg
Code:
--*********************************************************************** -- GET_FIELDS --*********************************************************************** CREATE PROCEDURE [dbo].[get_fields] @database_name varchar(100), @table_name varchar(100) AS BEGIN DECLARE @sqlstatement NVARCHAR(700) SET @sqlstatement = 'select columns.COLUMN_NAME, columns.DATA_TYPE, columns.CHARACTER_MAXIMUM_LENGTH, columns.NUMERIC_PRECISION, (select table_constraints.CONSTRAINT_TYPE from (' + @database_name + '.INFORMATION_SCHEMA.TABLE_CONSTRAINTS table_constraints inner join ' + @database_name + '.INFORMATION_SCHEMA.KEY_COLUMN_USAGE key_column_usage on table_constraints.CONSTRAINT_NAME = key_column_usage.CONSTRAINT_NAME) where table_constraints.TABLE_NAME = '''+ @table_name + ''' and key_column_usage.COLUMN_NAME = columns.COLUMN_NAME and table_constraints.CONSTRAINT_TYPE = ''PRIMARY KEY'') as ''Primary Key'' FROM ' + @database_name + '.INFORMATION_SCHEMA.COLUMNS columns where columns.TABLE_NAME = ''' + @table_name + ''' order by columns.COLUMN_NAME' EXEC sp_executesql @sqlstatement END GO
Ich habe jetzt einfach das Ergebniss von dazugejoined:
Code:
--*********************************************************************** -- GET_FIELDS --*********************************************************************** CREATE PROCEDURE [dbo].[get_fields] @database_name varchar(100), @table_name varchar(100) AS BEGIN DECLARE @sqlstatement NVARCHAR(700) SET @sqlstatement = 'select columns.COLUMN_NAME, columns.DATA_TYPE, columns.CHARACTER_MAXIMUM_LENGTH, columns.NUMERIC_PRECISION, (select table_constraints.CONSTRAINT_TYPE from (' + @database_name + '.INFORMATION_SCHEMA.TABLE_CONSTRAINTS table_constraints inner join ' + @database_name + '.INFORMATION_SCHEMA.KEY_COLUMN_USAGE key_column_usage on table_constraints.CONSTRAINT_NAME = key_column_usage.CONSTRAINT_NAME) where table_constraints.TABLE_NAME = '''+ @table_name + ''' and key_column_usage.COLUMN_NAME = columns.COLUMN_NAME and table_constraints.CONSTRAINT_TYPE = ''PRIMARY KEY'') as ''Primary Key'',value FROM ('+ @database_name + '.INFORMATION_SCHEMA.COLUMNS columns) LEFT JOIN (::fn_listextendedproperty(NULL, "´schema", "dbo", "table", ' + @table_name + ', "column", default)) ON (columns.COLUMN_NAME = ::fn_listextendedproperty(NULL, "´schema", "dbo", "table", ' + @table_name + ', "column", default).objname ) where columns.TABLE_NAME = ''' + @table_name + ''' order by columns.ORDINAL_POSITION' EXEC sp_executesql @sqlstatement END GO
Vielleicht könnte sich irgendwer den Code anschauen, es wäre mir wirklich eine große Hilfe.
mfg
Comment