在table '"WEBDB"."dbo"."web_so_confirm"'上建立主键或者唯一键。

解决方案 »

  1.   

    1.  去掉update这句会否报错?2.  只做update这句会否报错?
      

  2.   

    你仔细检查一下你的表结构。下面是关于7306错误的说明错误 7306
    严重级别 16
    消息正文
    未能打开表 ''%1!''(来自 OLE DB 提供程序 ''%2!'')。%2!解释
    如果 OLE DB 提供程序不支持 UPDATE、DELETE 和 INSERT 语句所要求的接口和 OLE DB 属性,就会返回该错误信息。对策
    在这个方案中,对 OLE DB Errors 的跟踪会输出有关特定丢失 OLE DB 支持的更多信息。例如,在 Microsoft® SQL Server™ 的情况下,如果远程表上未定义唯一索引,则该表不支持 INSERT、UPDATE 和 DELETE 语句。这种情况下,SQL 事件探查器会输出以下信息:OLE/DB Provider 'SQLOLEDB' IOpenRowset::OpenRowset returned 0x80040e21:  
    [PROPID=DBPROP_BOOKMARKS VALUE=True STATUS=DBPROPSTATUS_OK], [PROPID=DBPROP_IRowsetLocate 
    VALUE=True STATUS=DBPROPSTATUS_OK], [PROPID=DBPROP_IRowsetChange VALUE=True 
    STATUS=DBPROPSTATUS_CONFLICTING], [PROPID=DBPROP_UPDATABILITY VALUE=1 STATUS=DBPROPSTATUS_OK]该错误信息表明每个 OLE DB 属性的状态,这些属性是在针对正在更新的表打开的行集上请求的。该信息表明除 DBPROP_IRowsetChange 属性之外,提供程序提供了 SQL Server 执行该查询所需的所有属性。