F# INSERT INTO语句中的F OleDb语法错误从对链接SQL Server的访问中提取数据

F# INSERT INTO语句中的F OleDb语法错误从对链接SQL Server的访问中提取数据,f#,sql-server-2008-r2,oledb,ms-access-2010,insert-into,F#,Sql Server 2008 R2,Oledb,Ms Access 2010,Insert Into,我正在运行一个F应用程序,将数据从Access表拉到链接的SQL Server表。以下是生成的查询: 插入dbo_Tenterm UnitID、保单期限年、投保名称、保单编号、续保日期、共价总金额、共价总金额、共价总金额、住户X、分配风险免赔额、医疗保险费、总保费、飓风免赔额、分区、分区、分区、分区、百分比CRC、百分比CRD、年建成、雷尼尔、百分比CFD、百分比HA、百分比MLD、GRP1、百分比NH、QCLM、费率、CRI、代理名称、,AFOCode、PolicyType、PolicyFor

我正在运行一个F应用程序,将数据从Access表拉到链接的SQL Server表。以下是生成的查询:

插入dbo_Tenterm UnitID、保单期限年、投保名称、保单编号、续保日期、共价总金额、共价总金额、共价总金额、住户X、分配风险免赔额、医疗保险费、总保费、飓风免赔额、分区、分区、分区、分区、百分比CRC、百分比CRD、年建成、雷尼尔、百分比CFD、百分比HA、百分比MLD、GRP1、百分比NH、QCLM、费率、CRI、代理名称、,AFOCode、PolicyType、PolicyForm、OC、DateCreated 选择[单位ID]、[保单有效期年]、[投保人姓名]、[保单]、[续保日期]、[总金额]、[总金额]、[总金额]、[全部/其他风险免赔额]、[医疗保险费]、[总保费]、[保险费]、分区、分区、[%CRC]、%CRD]、[YR BLT]、雷尼尔斯、[%CFD]、%HA]、%MLD]、GRP1、[%NH]、QCLM、[RATE V]、[CRI]、[AGENT CODE]、[AGENT NAME]、[AFO],[POLICY TYPE],[POLICY FORM],OC,DateCreated 来自tblPrior 查询在Access中解析并运行良好。但在我的应用程序中,它引发了一个错误:INSERT INTO语句中的语法错误

这是我的F,虽然我认为这不相关

模块数据 开放系统.数据 开放系统.Data.OleDb 类型周期=之前|当前 让我们上传p:Period db= 使用conn=newOleDbConnection@Provider=Microsoft.ACE.OLEDB.12.0;数据源=+db+;持久安全信息=False; 让我们来看看= 让comm=新的OLEDB命令,连接到 comm.ExecuteNonQuery |>忽略 let table,proc=match p with |优先级->tblPrior,初始优先级 |当前->tblCurrent,InitCurrentTable 康涅狄格开门吗 让u=sprintf插入dbo_TENTERM UNIID、PolicyTermYear、被保险人姓名、保单编号、续保日期、共有、共有、共有、共有、共有、共有、共有风险免赔额、医疗保险费、总保费、飓风免赔额、分区、分区、分区、分区、百分CRC、百分CRD、年建成、雷尼尔、百分CFD、百分HA、百分MLD、GRP1、百分NH、QCLM、费率、CRI、,代理代码、代理名称、AFOCode、保单类型、保单格式、OC、创建日期选择【单位ID】、【保单有效期年】、【投保人姓名】、【保单】、【续保日期】、【总保险金额】、【总保险金额】、【总保险金额】、【总保险金额】、【总保险金额】、【总保险金额】、【总保险金额】、【总保险金额】、【总保险金额】、【总保险金额】、【总保险金额】、【总金额】、【总金额】、【总金额】、【总金额】、【总金额】、【总金额】、【总金额】、【总金额】、【总金额】、【总金额】、【总金额】、【总金额,[%%MLD]、GRP1、[%%NH]、QCLM、[RATE V]、CRI、[AGENT CODE]、[AGENT NAME]、[AFO CODE]、[POLICY TYPE]、[POLICY FORM]、OC、Date从%s表创建 //调试。 打印fn%s u //调试。 执行查询 执行查询程序 Zone和DateCreated都是。很难预测保留字何时会给SQL语句带来麻烦,但在我看来,OleDb可能不太宽容,即保留字更容易失败。请查看是否将这些名称的所有出现都括起来可以使插入成功

let u = sprintf "INSERT INTO dbo_TempTerm (UnitID, PolicyTermYear, InsuredName, PolicyNumber, RenewalDate, CovATotal, CovBTotal, CovLTotal, DwellExtn, AllOtherPerilDeductible, MedPay, TotalPremium, HurricaneDeductible, [Zone], Subzone, PercentCRC, PercentCRD, YearBuilt, RenYrs, PercentCFD, PercentHA, PercentMLD, GRP1, PercentNH, QCLM, RateV, CRI, AgentCode, AgentName, AFOCode, PolicyType, PolicyForm, OC, [DateCreated]) SELECT [UNIT ID], [POLICY TERM YEAR], [INSURED NAME], [POLICY #], [RENEWAL DT], [COV A TOTAL], [COV B TOTAL], [COV L TOTAL], [DWELL EXTN], [ALL/OTHER PERIL DEDUCTIBLE], [MED PAY], [TOT PREMIUM], [HURR DED], [ZONE], SUBZONE, [%%CRC], [%%CRD], [YR BLT], RENYRS, [%%CFD], [%%HA], [%%MLD], GRP1, [%%NH], QCLM, [RATE V], CRI, [AGENT CODE], [AGENT NAME], [AFO CODE], [POLICY TYPE], [POLICY FORM], OC, [DateCreated] FROM %s" table

您正在尝试使用该查询从access提取数据并直接插入SQl server吗?就是这样!非常感谢。下次我看到另一个类似于此的无意义错误时,我将检查保留字列表。不客气,Jeff。在我链接的页面顶部附近,有一个数据库问题检查器实用程序的链接。您可以下载该链接实用工具,并使用它检查Access数据库。它将警告您有问题的对象名称,以及其他可能造成问题的问题。