Guten Nachmittag!
Ich bin gerade sowas von am verzweifeln, da ich es einfach nicht schaffe einen verdammten Fehler aus einer Zeile Code zu entfernen.
Als Fehlermeldung bekomme ich "Incoret Syntax near..." Dabei kommen immer Bereiche inerhalb von fn_listextendedproperty. Ich nehme mal stark an des es ein Fehler mit den Anführungszeichen ist, aber ich bin wohl zu unfähig den zu finden.
Der Code selbst ist getestet und sollte funktionieren.
Vielleicht könnte irgendjemand den Code überfliegen und mir meinen Fehler ausbessern.
mfg
Ich bin gerade sowas von am verzweifeln, da ich es einfach nicht schaffe einen verdammten Fehler aus einer Zeile Code zu entfernen.
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) as e ON columns.COLUMN_NAME = e.objname collate SQL_Latin1_General_CP1_CI_AS where columns.TABLE_NAME = ''' + @table_name + ''' order by columns.ORDINAL_POSITION' EXEC sp_executesql @sqlstatement END GO
Der Code selbst ist getestet und sollte funktionieren.
Vielleicht könnte irgendjemand den Code überfliegen und mir meinen Fehler ausbessern.
mfg
Comment