4

在 SQL Server 中创建表时出现问题

一旦我选择 DOUBLE 作为数据类型,错误就跳到了我的脸上!!!

这是以下代码:

CREATE TABLE BATCH 
( Product_Name  VARCHAR(200) NOT NULL, 
  Product_Brand VARCHAR(100) NOT NULL, 
  CONSTRAINT Price_FK FOREIGN KEY (Product_Name,Product_Brand)REFERENCES Product   (Product_Name,Product_Brand),
  BATCH_Date AS GETDATE(),
  BATCH_OriginalPrice DOUBLE NOT NULL DEFAULT 0,
  BATCH_TAX DOUBLE NOT NULL DEFAULT 0,
  BATCH_ProductCost DOUBLE NOT NULL DEFAULT 0 ,
) 

关键字'NOT'附近的每个双精度错误语法后的错误是这样的

当我将鼠标移过它时,它会显示“'NOT'附近的语法不正确。需要ID”

谁能告诉我是什么问题!!!

4

3 回答 3

11

double不是 SQL 中的数据类型,您必须使用floator real

通过您的示例,您也可以使用money

相关:什么代表sql server中的double?

于 2013-08-01T06:25:27.147 回答
3

您不能DOUBLE在 SQL SERVER 中使用。尝试使用 Decimal 或 Float 或 Real 或 Money 甚至 Smallmoney。看这里

CREATE TABLE BATCH 
( Product_Name  VARCHAR(200) NOT NULL, 
  Product_Brand VARCHAR(100) NOT NULL, 
  CONSTRAINT Price_FK FOREIGN KEY (Product_Name,Product_Brand)REFERENCES Product (Product_Name,Product_Brand),
  BATCH_Date AS GETDATE(),
  BATCH_OriginalPrice REAL NOT NULL DEFAULT 0,
  BATCH_TAX REAL NOT NULL DEFAULT 0,
  BATCH_ProductCost REAL NOT NULL DEFAULT 0 ,
) 
于 2013-08-01T06:49:42.557 回答
1

尝试使用DECIMAL,FLOATREAL数据类型 -

CREATE TABLE BATCH ( 
    Product_Name VARCHAR(200) NOT NULL, 
    Product_Brand VARCHAR(100) NOT NULL, 
    BATCH_OriginalPrice DECIMAL(18,2) NOT NULL DEFAULT 0, 
    BATCH_TAX DECIMAL(18,2) NOT NULL DEFAULT 0, 
    BATCH_ProductCost DECIMAL(18,2) NOT NULL DEFAULT 0 , 
    BATCH_Date AS GETDATE(), 
    CONSTRAINT Price_FK FOREIGN KEY (Product_Name,Product_Brand)
    REFERENCES Product (Product_Name,Product_Brand)
) 
于 2013-08-01T06:26:31.773 回答