[Tech] SQL Server อยากหาชื่อ Column แบบเดียวกันทุก Tables

พอดีเจอปัญหาที่ต้อง Update ข้อมูลหลาย Table มาก แต่ว่าไม่รู้ว่ามีข้อมูลที่ Table ไหนบ้าง แต่รู้ว่ามันชื่อ Column นี้หมด ยกตัวอย่าง ต้องการหา ExtOrgId ใน Tables แต่อยากรู้ว่ามีที่ Table ไหนบ้าง

วิธีใช้ก็คือ

DECLARE @query NVARCHAR(MAX) = ''

SELECT @query += 'select '''+ a.oname +''' [TableName], * from ' + a.oname +' where '+ a.cname+' =3488;' 
FROM (
 SELECT  o.name oname, c.name cname
 FROM    sys.columns c
   JOIN sys.objects o ON o.object_id = c.object_id
 WHERE   o.type = 'U'
   AND (c.name IN ('ExtOrgId'))
 GROUP BY o.name, c.name
) a

SELECT @query
SQL

เพียงแค่นี้ก็จะได้ Query ที่หา Table มาให้พร้อมสำหรับเอาไปค้นหาข้อมูลต่อได้แล้ว