sql - INSERT INTO 语句中的大小写

标签 sql sql-server stored-procedures

我试图在未提供 ActionReq 时将此存储过程的 ActionReq 列设置为 Expiration + AdvancedCancel 的值。 ActionReq 和 Expiration 是日期时间,AdvancedCancel 是一个整数。我该怎么做?我的 SQL 技能非常基础。

ALTER PROCEDURE [dbo].[insertIntoGrid] 
    @Vendor nvarchar(max),
    @Product nvarchar(max),
    @Type nvarchar(max),
    @AccountCode nvarchar(max),
    @2016AccCode nvarchar(max),
    @BusinessUnit nvarchar(max),
    @Group nvarchar(max),
    @TIAYTD nvarchar(max),
    @ContractPeriod nvarchar(max),
    @RenewPeriod nvarchar(max),
    @Expiration datetime,
    @AdvancedCancel nvarchar(max),
    @ActionReq datetime,
    @Notes nvarchar(max),
    @Division nvarchar(max)
AS
BEGIN
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    INSERT INTO TestRedo3(Vendor, [Product/Service], [Type], AccountCode,
                          [2016AccCode], BusinessUnit, [Group], TIAYTD,
                          ContractPeriod, RenewPeriod, Expiration, AdvancedCancel,
                          case [ActionReq] is null THEN dateadd(day, @AdvancedCancel, @Expiration) 
                            else ActionReq
                          end as ActionReq, Notes, Division) 
    VALUES (@Vendor, @Product, @Type, @AccountCode,
            @2016AccCode, @BusinessUnit, @Group, @TIAYTD,
            @ContractPeriod, @RenewPeriod, @Expiration, @AdvancedCancel,
            @ActionReq, @Notes, @Division)
END

最佳答案

您需要将插入内容更改为类似这样的内容。我不完全确定您要做什么,但这应该很接近。

INSERT INTO TestRedo3
(
    Vendor,
    [Product/Service],
    [Type],
    AccountCode,
    [2016AccCode],
    BusinessUnit,
    [Group],
    TIAYTD,
    ContractPeriod,
    RenewPeriod,
    Expiration,
    AdvancedCancel,
    ActionReq,
    Notes,
    Division
) 
select 
    @Vendor,
    @Product,
    @Type,
    @AccountCode,
    @2016AccCode,
    @BusinessUnit,
    @Group,
    @TIAYTD,
    @ContractPeriod,
    @RenewPeriod,
    @Expiration,
    @AdvancedCancel,
    case when @ActionReq is null THEN dateadd(day, @AdvancedCancel, @Expiration) 
        else @ActionReq
    end,
    @Notes,
    @Division

关于sql - INSERT INTO 语句中的大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40426671/

相关文章:

php - 我如何对我的 SQL 和 PHP 代码进行基准测试?

sql - SQL查询中如何使用索引

mysql - 过程调用中的 in 和 out 变量

sql-server - 是否必须关闭 T-SQL 存储过程中的游标?

mysql - 检查 MySQL 数据库中是否存在值数组

sql - 有没有办法确保 WHERE 子句发生在 DISTINCT 之后?

c# - LINQ OrderBy().ThenBy() 不工作

c# - Sql DataReader 有行但返回空数据

单击按钮即可更新 asp.net 表

c# - 访问 Int 变量时 SSIS 出现异常