0

没有通过谷歌找到答案。我需要从 SQL Server 存储过程中执行此代码。

我有一个包含 100 多个访问数据库的文件夹,其中包含一个名为 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'
4

1 回答 1

0

标准方法是通过调用 DoCmd.TransferDatabase 链接到 tblReports。然后,您将能够在开始执行任何 SQL 之前计算表中的字段数。在查看结束时,您将通过调用 DoCmd.DeleteObject 删除链接。

它看起来肯定比你想要做的更整洁。

于 2012-03-17T00:20:37.493 回答