首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQL Server : update触发器似乎影响错误的列

SQL Server : update触发器似乎影响错误的列
EN

Stack Overflow用户
提问于 2018-09-30 01:57:19
回答 2查看 459关注 0票数 1

谢谢你的关注。我正在尝试编写一个SQL Server触发器,当添加包含日期信息的新记录时,它会将星期几添加到DayOfWeek列中。下面是我的表,按列顺序排列:

餐桌:

代码语言:javascript
复制
FoodName **varchar(20)**  
CategoryID (FK) **int**  
Price **smallmoney**  
StoreID (FK) **int**  
Date **datetime**  
DayOfWeek **varchar(9)**  
ShopperID (FK) **int**  
Week **int**  

下面是我写的触发器:

代码语言:javascript
复制
-- Create a trigger to update day of the week when a record is inserted  
CREATE TRIGGER DOW  
ON Food  
FOR INSERT  
AS  
BEGIN  
    -- Declare a variable to hold the date ID  
    DECLARE @dateID DATETIME

    -- Get the date from the new record and store it in @dateID  
    SELECT @dateID = Date FROM Food  

    -- Insert day of the week based on the inserted date  
    INSERT INTO Food (DayOfWeek)  
        SELECT DATENAME(dw, @dateID)  
END  
GO  

SQL Server似乎接受该过程,但当我运行另一个过程以插入新记录时,收到以下错误:

消息515,级别16,状态2,程序道,第8行批量开始第21行

无法将值NULL插入到表*的列'Week‘中;列不允许为NULL。插入失败。

我根本不确定为什么这个触发器会影响“Week”一栏。代码应采用为日期输入的值,并使用DATENAME(dw,...)函数返回星期几,它应该放到DayOfWeek列中。我已经编写了一个存储过程,它接受日期作为输入,并将相应的星期几插入到记录中,它工作得很好,但是这个触发器似乎不想合作。我被难住了!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52571058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档