데이터베이스에 새 테이블을 만드는 업데이트 된 테이블이 여러 개 있습니다 (드물게). 그런 다음 사례 기능을 사용하여 이러한 역사적인 테이블을 쿼리하도록 내 보고서를 업데이트해야합니다. 필자가 제공해야하는 보고서의 수를 감안할 때, 이것은 오랜 연습이며, 길다란 사례 문 & 전체 외부 조인으로 인해 보고서가 실적이 저조하다는 것을 의미합니다. 나는 일종의 와일드 카드를 사용하여 데이터를 추출하기 위해 비슷한 이름을 가진 테이블을 조사하기를 원했다. (필자가 필요로하는 모든 컬럼은 같은 이름을 가지고있다.) 그래서 데이터베이스가 업데이트 될 때마다 내 모든 쿼리를 다시 작성하십시오. 예 :SQL Server 동적 SQL이 여러 테이블에서 동일한 열을 선택합니다.
Table1.PaymentStatus
Table1.Amount
Table2.PaymentStatus
Table2.Amount
....
TableX.PaymentStatus
TableX.Amount
내가 필요 필드인가 ->
Payment Status Amount
All Data All Data
다행스럽게도 필자는 연합 전체를 포함한 동적 SQL의 일종을 만들 수, 다음 내 테이블의 나머지 하위 쿼리 이런 종류의 연결합니다. 나는 동적 SQL에 대한 많은 경험이 없다. &은 & 포럼에서이 쿼리를 발견했다. (그리고 동시에 배우기도하지만) 많은 행운이 없다.
declare @columns table (idx int identity(1,1), table_name varchar(100), column_name varchar(50))
insert into @columns (table_name, column_name)
select table_name, column_name
from INFORMATION_SCHEMA.COLUMNS
where table_name like '%Special%'
declare @sql nvarchar(4000)
declare @i int
declare @cnt int
declare @col varchar(100)
declare @table varchar(100)
select @i = 0, @cnt = max(idx), @sql = '' from @columns
select *
from @columns
while @i < @cnt
begin
select @i = @i + 1
select @col = column_name, @table = table_name from @columns where idx = @i
if len(@sql) > 0
select @sql = @sql + ', '
select @sql = @sql + '[' + @table + '].[' + @col + '] as [' + @table + '_' + @col + ']'
end
select @sql = 'select ' + @sql + ' from *'
exec sp_executesql @sql
내가보기를 만들고 난 단지이보기 업데이트가 발생할 때마다 업데이트 할 필요가 있으므로이보기에 내 쿼리를 연결하지만, 더 자동 솔루션이 있었는지 궁금 해서요에 대한 또 다른 제안을 했어. 불행히도 이러한 사본이 작성되는 방식을 제어 할 권한이 없습니다.
감사합니다.