SQL 서버의 모든 열을 찾아야합니다. 첫 번째 주석 처리 된 영역에 열 이름을 설정하기 만하면됩니다.
테스트 영역을 테스트하십시오.
그런 다음 아래 주석을 사용하여 쿼리 인쇄 및 쿼리 실행을 전환하십시오.
declare @tab table (id int identity(1,1) primary KEY
,TABLE_CATALOG varchar(50)
,TABLE_SCHEMA varchar(50)
,TABLE_NAME varchar(50)
,COLUMN_NAME varchar(50))
insert into @tab(TABLE_CATALOG ,
TABLE_SCHEMA ,
TABLE_NAME,
COLUMN_NAME)
------- Test me
SELECT TABLE_CATALOG ,
TABLE_SCHEMA ,
TABLE_NAME,
COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
-- Set the Column Name you are looking for.
WHERE COLUMN_NAME = 'name'
----
ORDER BY TABLE_NAME
---- Test me endline
declare @sql varchar(8000), @i int,@count INT
, @TABLE_CATALOG varchar(50)
,@TABLE_SCHEMA varchar(50)
,@TABLE_NAME varchar(50)
,@COLUMN_NAME varchar(50)
set @i=1
select @count= count(*) from @tab
while @i <= @count
begin
select @TABLE_CATALOG=TABLE_CATALOG
,@TABLE_SCHEMA=TABLE_SCHEMA
,@TABLE_NAME=TABLE_NAME
,@COLUMN_NAME=COLUMN_NAME
from @tab where [email protected]
set @sql = '
SELECT '[email protected]_NAME+' AS Column_Name,*
FROM ['[email protected]_CATALOG+'].['[email protected]_SCHEMA+'].['[email protected]_NAME+']
'
--To Print the SQL Queries to the screen
print @sql
-- Uncomment and comment the Print Above to excute them.
--exec (@sql)
set @[email protected]+1
end
이렇게하려면 동적 SQL이 필요하며 이는 사용중인 데이터베이스에 따라 달라집니다. –
나는 주로 postgresql에 대한 해결책이 필요하지만 누군가가 mysql에 대한 해결책을 알고 있다면 나는 너무 행복 할 것이다. –