sql - 在过程中使用 getdate 或触发 SQL
问题描述
我想知道如何GETDATE()
在代码中使用以使其运行以及如何触发列中的特定内容。
我想检查SUPPLY_DATE
表中日期类型的列SUPPLY
是否与今天的日期相同。如果是,那么“今天供应”,如果不是“今天不供应”,我想我也遗漏了一些 if true 语句 (>1/>0),但不知道如何使用它来表示日期。
CREATE PROCEDURE P2
AS
BEGIN
IF (SELECT * FROM SUPPLY WHERE SUPPLY_DATE = GETDATE())
BEGIN
SELECT 'SUPPLY TODAY' AS SUPPLY
END
ELSE
BEGIN
SELECT 'NO SUPPLY TODAY' AS SUPPLY
END
IF @@ERROR=0 SELECT 'OK' AS OK
END
对于触发器,我希望将其设置为:
插入检查表和特定列后
如果我添加具有不同主键但名称相同的内容,它将回滚
当我有这个触发器时,它不会让我在表 THINGS 中插入任何东西,而且我不确定如何告诉它检查特定列而不是整个表。
CREATE TRIGGER T3
ON THINGS
AFTER INSERT
AS
IF EXISTS (SELECT * FROM THINGS)
BEGIN
ROLLBACK
RAISERROR('THERE IS A THING WITH THAT NAME',16,1);
END
解决方案
对于您的第一个问题,您需要转换getdate()
为日期,因为否则它具有时间组件并且仅在午夜等于日期数据类型。
SELECT *
FROM SUPPLY
WHERE SUPPLY_DATE = CAST(GETDATE() AS date)
还
IF @@ERROR=0 SELECT 'OK' AS OK
几乎不可能有错误。您是否意识到您正在向客户端返回 2 个数据集以获取 2 条信息?您可能需要考虑使用output
参数和返回值,这无论如何都是最佳实践。
注意:将您的第二个问题作为一个新问题提出。
推荐阅读
- python - 在 pytorch 数据加载器中从远程服务器获取数据
- ffmpeg - FFMPEG RTSP 流式传输
- reactjs - 使用素材ui的图片库和对话框
- c# - 获取程序集配置
- wordpress - 在 add_meta_boxes 中创建的自定义字段再次出现在默认的自定义元框中
- keycloak - Keycloak - 使用 master 对不同领域的内省令牌
- swift - 在下拉菜单顶部放一个标志 - Swift
- javascript - 将值从 HTML 表单提交到 Node-js
- c# - 在控制台 asp.net Core 上记录结果
- python - pyspark init 超类警告