這是SQLSERVER數據表:
CREATE TABLE [dbo].[ER] (
[ID] [numeric](18, 0) NULL ,
[GG] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[DD] [datetime] NULL 
) ON [PRIMARY]
GOACCESS中有一個結構與其相同的數據表,連名字都相同哦。我用SQL語句
INSERT INTO ER SELECT * FROM 
OPENROWSET('Microsoft.Jet.OLEDB.4.0','C:\template\MdbTemplate\TEMPIMP.mdb';'admin';'',ER)
  插入,總是提示:服务器: 消息 260,级别 16,状态 1,行 1
不允许从数据类型 datetime 到数据类型 numeric 的隐性转换(表 'GIS_TEST.dbo.ER',列 'ID')。请使用 CONVERT 函数来运行此查询。

解决方案 »

  1.   

    CREATE TABLE [dbo].[ER] ( 
    [ID] [numeric](18, 0) NULL , 
    [GG] [char] (10) COLLATE Chinese_PRC_CI_AS NULL , 
    [DD] [datetime] NULL  
    ) ON [PRIMARY] 
    GO
    INSERT INTO ER SELECT * FROM  
    OPENROWSET( 'Microsoft.Jet.OLEDB.4.0 ', 'C:\template\MdbTemplate\TEMPIMP.mdb '; 'admin '; ' ',ER) 
    FF瀏覽器不支持代碼、
      

  2.   

    自己解答了,給出答案:
    INSERT INTO ER SELECT a.ID,a.GG,convert(DATETIME,a.DD) DD FROM 
    OPENROWSET('Microsoft.Jet.OLEDB.4.0','C:\template\MdbTemplate\TEMPIMP.mdb';'admin';'',ER) a
      使用Convert或者Cast函數先做一個轉換。這個問題真是莫名其妙~~日期型還要轉換成日期型