SQLSERVER规定组成计算列的表达式中不能是计算列,只能是本表中的非计算列的列名、常量、函数、变量。

解决方案 »

  1.   

    CREATE TABLE [dbo].[InvIndent] (
    [AutoId] [int] IDENTITY (1, 1) NOT NULL ,
    [InvQty] [numeric](18, 2) NOT NULL ,
    [CostPrice] [numeric](18, 2) NOT NULL ,
    [CostMoney] AS ([invqty] * [costprice]) ,
    [BatchPrice] AS ([CostPrice] * 1.4) ,
    [BatchMoney] [numeric](18, 0) NULL ,
    [inDate] [smalldatetime] NOT NULL 
    ) ON [PRIMARY] 
    insert InvIndent(InvQty,CostPrice,inDate)
    select 20,30,getdate()select * from InvIndent--可以啊
      

  2.   

    @@hellowork(一两清风)
    这种情况怎么办呀??
      

  3.   


    BatchPrice * invqty
    替换成
    ([CostPrice] * 1.4) * invqty
    试试。
      

  4.   

    hellowork(一两清风)  说得对
      

  5.   

    如果要用计算列,只要将计算列中的公式拷一来当作那一列粘到要用的地方
    因为[BatchPrice] AS ([CostPrice] * 1.4)
    你要BatchMoney as (BatchPrice*invqty)--这样不行
    所以BatchMoney as ([CostPrice] * 1.4     *invqty )---就对了