27,579
社区成员
发帖
与我相关
我的任务
分享
--- 预备:开启 xp_cmdshell
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
GO
----
USE [tempdb]
GO
IF OBJECT_ID('[dbo].[trig_test_I]') IS NOT NULL DROP TRIGGER [dbo].[trig_test_I]
GO
IF OBJECT_ID('test') IS NOT NULL DROP TABLE test
GO
CREATE TABLE test(
id INT IDENTITY(1,1) PRIMARY KEY,
addTime DATETIME,
nr VARCHAR(50)
)
GO
-- =============================================
-- Author:
-- Create date: 2018-10-09
-- Description:
-- =============================================
CREATE TRIGGER dbo.trig_test_I
ON dbo.test
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
--1. 今天的
--2. nr = 'xxx'
IF EXISTS(SELECT 1 FROM INSERTED WHERE nr='aaa' AND addTime>=CONVERT(char(10),GETDATE(),120))
BEGIN
PRINT '开始执行 bat '
EXEC xp_cmdshell 'd:\ok.bat';
END
END
GO
INSERT INTO test (addTime,nr) VALUES (GETDATE(),'aaa')
--- 开启 xp_cmdshell
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
--- 下面是执行相关语句
IF EXISTS(SELECT 1 FROM test where data=当前日期 and nr='某值')
BEGIN
EXEC xp_cmdshell 'd:\cmd.bat';
END