GETDATE()在UPDATE中返回NULL

时间:2018-04-03 08:37:31

标签: sql sql-server

问题出在标题中,我想用GETDATE()更新一个字段以获取执行查询时的当前时间,但它返回一个空值。我之前看到该列不能为nullable,并且列默认值必须为“NULL”才能生效,情况就是这样。

我希望GETDATE()的列是'dt_saisie'

这是我的问题:

BEGIN
    UPDATE [proliv_min].[dbo].[proliv_production] 
        SET 
        dt_saisie = GETDATE(), 
        dcf = null, 
        login = 'user', 
        commentaire = '[TEST] Update' 
    WHERE 
        id_kopf = ( 
            SELECT 
                id 
            FROM 
                [proliv_min].[dbo].[proliv_kopf] 
            WHERE 
                1=1 
                AND cprj = '962753' 
                AND statut IS NULL
        );
END

感谢您的帮助

皮尔

1 个答案:

答案 0 :(得分:2)

您可以运行以下查询来更新数据。我已更改为在{where}条件中添加in。因为如果您没有在select语句中获取数据,则表格中不会进行更新。

BEGIN
    UPDATE [proliv_min].[dbo].[proliv_production] 
        SET 
        dt_saisie = GETDATE(), 
        dcf = null, 
        login = 'user', 
        commentaire = '[TEST] Update' 
    WHERE 
        id_kopf in ( 
            SELECT 
                id 
            FROM 
                [proliv_min].[dbo].[proliv_kopf] 
            WHERE 
                1=1 
                AND cprj = '962753' 
                AND statut IS NULL
        );
END