Google을 통해 답변을 찾지 못했습니다. SQL Server에서 저장 한 proc에서이 코드를 실행해야합니다.SQL Server openrowset() MS 액세스 테이블의 열 개수 테스트
나는 tblReports라는 테이블이있는 100+ 액세스 dbs가있는 폴더가 있습니다. 일부 액세스 db의 AdminReport라는 tblReports에 여분의 열이 있습니다.
만약 존재한다면 여분의 칼럼을 포착 할 필요가있다 ... 나는 얼마나 많은 칼럼이 tblReports에 있는지 테스트해야한다. 그래서 sp에서 if/else 문을 사용하여 올바른 SQL을 생성 할 수있다. 열 개수.
나는 당신의 생각을 읽고 싶습니다. 여기에 관련 스 니펫이 있습니다.
set @sql = 'Insert into CustomerServiceIntranet.dbo.ReportCriteria
(UserInfo,RptNbr,RptType,RptDesc,GroupCDBrk,ClientCDBrk,CategoryCDBrk,
UserIDBrk,UnitCDBrk,WrkTypeBrk,StatCDBrk,StatDatBrk,
ExperBrk,GroupList,ClientList,CategoryList,UserIDList,BusAreaList,
WrkTypList,StatusList,QueueList,ReviewDay,ReviewDayNA,
ErrorImpact,DateRange,DataSource,RptPathFile)'
+ 'Select '''+ @userfilename + ''', ors.* '
+ 'from (select * From Openrowset(''Microsoft.ACE.OLEDB.12.0'','''
+ @CurrentName
+ ''';''Admin'';,''select * from tblReports'')) ors'
나는 MS Access가 아닌 SQL Server에서이 작업을 수행하고 있습니다. SQL Server에서 VBA 명령을 실행할 수 있다고 말하고 있습니까? openrowset() 사용? –
죄송합니다. SQL Server에서이 작업을 수행하고 있다는 것을 알지 못했습니다. VBA에서 그렇게하는 것이 더 쉬운 방법 일 것입니다. –
예, 성능이 필요합니다 (100+ databasesin 20 초 실행) 및 재사용이 필요합니다. 나는 모든 준비가되어있는 sp를 가지고있다 (그리고 나는 마지막/여분의 열을 무시하면 일한다). –