尚未通过Google找到答案。我需要从SQL Server存储过程执行此代码。
我有一个包含100多个访问dbs的文件夹,其中包含一个名为tblReports的表。某些访问数据库在tblReports中有一个名为AdminReport的额外列。
如果存在,我需要捕获额外的列,因此......我需要测试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'
答案 0 :(得分:0)
标准方法是通过调用DoCmd.TransferDatabase链接到tblReports。然后,您可以在启动任何SQL之前计算表中字段的数量。在外观结束时,您将通过调用DoCmd.DeleteObject来删除链接。
它看起来比你想做的更整洁。