不用cast也不用convert呢?
INSERT TABLENAME(moneyFIELD) VALUES(100000.36)

解决方案 »

  1.   

    怎么可能啊
    create table mone (a money)
    insert mone values(300)
      

  2.   

    以前 我遇到过这样的问题在insert的时候不要加''正确:insert mone values(300)
    错误:insert mone values('300')
      

  3.   

    INSERT INTO dbo.T_BOOK
          (book_id, book_name, price)
    VALUES ('123456', '12345', 300) 或者INSERT INTO dbo.T_BOOK
          (book_id, book_name, price)
    VALUES ('123456', '12345', 0),执行都会出错。我放在sqlserver上执行,说是“列名或所提供值的数目与表定义不匹配”。我的表就三个字段,分别为char(6),varchar(60)和money.
      

  4.   

    这个错误不关money.字段的事。看一下你的逗号、括号和引号是不是半角的。
      

  5.   

    create table t_book (book_id char(6),book_name varchar(60) ,price money)
    insert into t_book (book_id, book_name, price)
    VALUES ('123456', '12345', 300)没有问题啊
      

  6.   

    不是列名错了,也不是表名错了,也不是逗号的事情,也不是因为用了IDENTITY字段,因为这些问题报告的错误都不是他说的错误。
    我觉得问题绝对不在SQL语句上,估计是你以为执行的这句语句,其实执行的是另一句语句(这是唯一的可能,否则你的SQLSERVER最好扔掉算了),你从查询分析器里在执行一遍看看。另外,把你的CREATE TABLE语句贴出来
      

  7.   

    TO:leeliyiph(李)
    我猜测你的TABLE T_BOOK一定有外键约束存在,你输入的数据不合法。
    你用SP_HELP T_BOOK看看!
      

  8.   

    货币数据不需要用单引号 (') 括起来。但是,货币数值之前必须带有适当的货币符号。例如,若要指定 100 英镑,请使用 £100。
      

  9.   

    USE Northwind
    GO
    CREATE TABLE TestMoney (cola INT PRIMARY KEY, colb MONEY)
    GO
    SET NOCOUNT ON
    GO-- The following three INSERT statements work.
    INSERT INTO TestMoney VALUES (1, $123.45)
    GO
    INSERT INTO TestMoney VALUES (2, $123123.45)
    GO
    INSERT INTO TestMoney VALUES (3, CAST('$444,123.45' AS MONEY) )
    GO
      

  10.   

    1。查询分析器显示一样的错误
    2。没有check
    3。应该是不需要非的加货币符号的
      

  11.   

    上面的语句都是可以执行的,如果这样还出错的话,应该不是数据类型的问题。
    联机帮助文档上说明货币数值之前必须带有适当的货币符号,否则定义money类型和其它数据类型不就没什么区别。