ป้ายกำกับ: Table

SQL Server เช็ค column prefixSQL Server เช็ค column prefix

เป็นสคริปที่เขียนมาเพราะว่า ตารางที่ใช้อยู่ตอนนี้ แต่ละ table จะมีอยู่ 2 prefix ทำให้เขียน query ออกมาไล่ทุก ๆ ตาราง นับดูว่า มันมี น้อยกว่า มากกว่า มาตราฐานการออกแบบ Design Consistency
audit_table_column_prefix.sql

WITH ColumnPrefixes AS (SELECT s.name AS SchemaName, t.name AS TableName, c.name AS ColumnName, -- แก้ไขจุดที่ทำให้เกิด Error 537 CASE WHEN CHARINDEX ('_', c.name) > 0 THEN LEFT (c.name, CHARINDEX ('_', c.name) - 1) ELSE '[No Prefix]' END AS Prefix FROM sys.tables t INNER JOIN sys.schemas s ON t.schema_id = s.schema_id INNER JOIN sys.columns c ON t.object_id = c.object_id WHERE t.is_ms_shipped = 0 AND t.name <> 'sysdiagrams') ,
PrefixStats AS (SELECT SchemaName, TableName, COUNT (DISTINCT Prefix) AS PrefixCount, -- ใช้ STRING_AGG (สำหรับ SQL 2017+) หรือ XML PATH (สำหรับ SQL รุ่นเก่า) STUFF ( (SELECT DISTINCT ', ' + cp2.Prefix FROM ColumnPrefixes cp2 WHERE cp2.SchemaName = cp.SchemaName AND cp2.TableName = cp.TableName FOR XML PATH ('') , TYPE) .value ('.', 'NVARCHAR (MAX) ') , 1, 2, '') AS FoundPrefixes FROM ColumnPrefixes cp GROUP BY SchemaName, TableName) SELECT SchemaName, TableName, PrefixCount, FoundPrefixes
FROM PrefixStats
WHERE PrefixCount != 2
ORDER BY SchemaName, TableName;

ถ้ามาตราฐานมี prefix ไม่เท่ากับ 2 ก็ลองเปลี่ยนเงื่อนไข เครื่องหมายเป็น > < ดูก็ได้