我在sqlserver上建立一个表 goods
里面有两列  name(not null) 和 price(momey , not null)
其中price的默认值是2000我现在进行插入几行:insert
into goods
(
name,
price
)
values
(
'薯片'
)编译报错,说price 为 NULL 不通过!
我不是把price的默认值设成2000了吗??它不能自动填写进去吗??上面怎么改 insert 这个命令,才能使得2000自动填写呢??新生求救!!!

解决方案 »

  1.   

    insert
    into goods
    (
    name)
    values
    (
    '薯片'
    )
      

  2.   


    insert into goods (name) values('薯片')
      

  3.   

    既然设置了默认值,insert的时候,就不要写price字段
      

  4.   

    或用default关健字CREATE TABLE #(Price MONEY DEFAULT 10.00,NAME NVARCHAR(50))
    GO
    INSERT #
            ( Price, NAME )
    VALUES  ( DEFAULT, -- Price - money
              '薯片'  -- NAME - nvarchar(50)
              )
    GO
    SELECT * FROM #
    DROP TABLE #
    /*
    Price NAME
    10.00 薯片*/
      

  5.   

    insert
    into goods
    (
    name
    --,price 有默认值填充的列插入的时候不用显示指定
    )
    values
    (
    '薯片'
    )