Category Archive SSMS

Byphunsanit

SQL Server: list columns เอามาใช้

เป็น sql server script ที่ list columns ที่มีทั้งตารางเอามาใช้ในการทำงานในสคริปต์อื่น ๆ ได้ โดย join คั่นคอลัมน์ด้วย , ตามลำดับที่มี จะได้ copy เอาไปใช้ทีเดียวเลย
/MSSQL/list_columns_in_one_column.sql

/******************************************************************
	Query List Columns with Dynamic Filters (Supports LIKE)
	- FilterTable uses LIKE operator (allows %, _)
	- If Schema/Database is empty = Search All
******************************************************************/

-- ================= Define Search Criteria =================
DECLARE @FilterDatabase NVARCHAR(128) = '';		  -- Enter DB name or leave empty to search all
DECLARE @FilterSchema   NVARCHAR(128) = '';		  -- Enter 'dbo' or leave empty to search all schemas
DECLARE @FilterTable	NVARCHAR(128) = 'Pitt_%'; -- Can use %, e.g. 'PP_%', '%User%', 'Log_%'
-- =========================================================================

-- (Recommended) Comment out this line to allow cross-schema search (if you only want 'dbo', enable this)
IF @FilterSchema IS NULL OR @FilterSchema = '' SET @FilterSchema = 'dbo';

SELECT
	C.TABLE_CATALOG AS [Database],
	C.TABLE_SCHEMA AS [Schema],
	C.TABLE_NAME AS [Table],
	STRING_AGG(C.COLUMN_NAME, ',') WITHIN GROUP (ORDER BY C.ORDINAL_POSITION) AS [Columns]
FROM INFORMATION_SCHEMA.COLUMNS C
JOIN INFORMATION_SCHEMA.TABLES T
	ON C.TABLE_NAME = T.TABLE_NAME
	AND C.TABLE_SCHEMA = T.TABLE_SCHEMA
WHERE T.TABLE_TYPE = 'BASE TABLE' -- Only actual tables

-- 1. Filter Database (if empty = get all)
	AND (@FilterDatabase IS NULL OR @FilterDatabase = '' OR C.TABLE_CATALOG = @FilterDatabase)

-- 2. Filter Schema (if empty = get all)
	AND (@FilterSchema IS NULL OR @FilterSchema = '' OR C.TABLE_SCHEMA = @FilterSchema)

-- 3. Filter Table with LIKE (if empty = get all)
	AND (@FilterTable	IS NULL OR @FilterTable	= '' OR C.TABLE_NAME LIKE @FilterTable)

GROUP BY C.TABLE_CATALOG, C.TABLE_SCHEMA, C.TABLE_NAME
ORDER BY C.TABLE_SCHEMA, C.TABLE_NAME;

อ่านเพิ่มเติม