如何在SQL Server脚本中使用临时表?

问题描述 投票:0回答:3

我必须在sql脚本中使用一些硬编码数据,为此,我正在使用临时表

CREATE TABLE #Temp
(
    [Type] INT,
    StartDate DATETIME,
    EndDate DATETIME,
    InterestRate DOUBLE
);

INSERT INTO #Temp 
VALUES (1, '2015-07-01', '2017-05-01', 27),
       (1, '2017-05-02', '2017-06-30', 25.71)

在第6行,它显示为Expecting Id错误

有没有最简单的方法来做到这一点?

sql sql-server temp-tables
3个回答
1
投票

double中没有sql server数据类型,请使用decimal

CREATE TABLE #Temp
(
    [Type] Int,
    StartDate DateTime,
    EndDate DateTime,
    InterestRate decimal
);

Insert Into #Temp Values 
(1,'2015-07-01','2017-05-01',27),
(1,'2017-05-02','2017-06-30',25.71)

0
投票

[SQL不支持DOUBLE,可以使用floatdecimal代替DOUBLE

CREATE TABLE #Temp
(
    [Type] Int,
    StartDate DateTime,
    EndDate DateTime,
    InterestRate decimal
);

Insert Into #Temp Values 
(1,'2015-07-01','2017-05-01',27),
(1,'2017-05-02','2017-06-30',25.71)

0
投票

您应使用decimal,但需要提供scaleprecision。默认值为0。 。 。这对于加息不太有用。参见this example

CREATE TABLE #Temp (
    [Type] INT,
    StartDate DATETIME,
    EndDate DATETIME,
    InterestRate DECIMAL(10, 6)
);

INSERT INTO #Temp 
    VALUES (1, '2015-07-01', '2017-05-01', 27),
           (1, '2017-05-02', '2017-06-30', 25.71);

此外,SQL Server does have floating point types。它们分别称为floatreal。出于财务目的,我认为decimal / numeric是更好的选择。

© www.soinside.com 2019 - 2024. All rights reserved.