Skip to content

Instantly share code, notes, and snippets.

@hmel1990
Created March 7, 2025 15:38
Show Gist options
  • Save hmel1990/fb9f50f7d7eb7f1a01339f7e43ab472d to your computer and use it in GitHub Desktop.
Save hmel1990/fb9f50f7d7eb7f1a01339f7e43ab472d to your computer and use it in GitHub Desktop.
CREATE OR ALTER PROCEDURE GetTableFields @TableName NVARCHAR(128)
AS
BEGIN
DECLARE @SQL NVARCHAR(MAX)
SET @SQL = '
SELECT
c.TABLE_CATALOG AS DatabaseName,
c.TABLE_SCHEMA AS SchemaName,
c.TABLE_NAME AS TableName,
c.COLUMN_NAME AS ColumnName,
c.DATA_TYPE AS DataType,
c.IS_NULLABLE AS IsNullable
FROM INFORMATION_SCHEMA.COLUMNS c
LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE k
ON c.TABLE_NAME = k.TABLE_NAME
LEFT JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS con
ON k.CONSTRAINT_NAME = con.CONSTRAINT_NAME
WHERE c.COLUMN_NAME IS NOT NULL
AND c.TABLE_NAME = ''' + @TableName + '''
GROUP BY c.TABLE_CATALOG, c.TABLE_SCHEMA, c.TABLE_NAME, c.COLUMN_NAME, c.DATA_TYPE, c.IS_NULLABLE
ORDER BY DatabaseName, SchemaName, TableName, ColumnName'
EXEC sp_executesql @SQL
END
EXEC GetTableFields 'Producer'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment