不用cast也不用convert呢?
INSERT TABLENAME(moneyFIELD) VALUES(100000.36)
INSERT TABLENAME(moneyFIELD) VALUES(100000.36)
解决方案 »
- 如何查看sqlserver登录密码更改的日志啊?!!!!!
- SQLSERVER2000数据库恢复问题,我死的心都有了。。。求解!
- 安装SQL数据库时提示下列错误,请教!
- 从设计规范来说,作为主键的编码字段,如果位数充许不同,这种设计合理吗?
- 新数据库服务器,要怎么引用旧服务器里的用户、DTS和Job?
- 哪里有入门级SQL Server 2005的教材呀? 要英文版的
- 求触发器的SQL.....
- SQLSERVER2000单步调试中datetime参数的秒只能为零?
- 怎么写自动产生记录序号的sql语句。
- 老问题,求统计数字的SQL语句!100分相送!不够再加!
- 请问哪里有MCDBA的免费的电子教材及考试模拟题下载?
- 我有一道程序,能否帮我分析一下?
create table mone (a money)
insert mone values(300)
错误:insert mone values('300')
(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.
insert into t_book (book_id, book_name, price)
VALUES ('123456', '12345', 300)没有问题啊
我觉得问题绝对不在SQL语句上,估计是你以为执行的这句语句,其实执行的是另一句语句(这是唯一的可能,否则你的SQLSERVER最好扔掉算了),你从查询分析器里在执行一遍看看。另外,把你的CREATE TABLE语句贴出来
我猜测你的TABLE T_BOOK一定有外键约束存在,你输入的数据不合法。
你用SP_HELP T_BOOK看看!
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
2。没有check
3。应该是不需要非的加货币符号的
联机帮助文档上说明货币数值之前必须带有适当的货币符号,否则定义money类型和其它数据类型不就没什么区别。