在创建新记录时安排sql查询

时间:2015-11-16 15:04:40

标签: sql sql-server

添加新记录时是否可以安排SQL查询。目前,我有一个计划在某个时间每天执行一次的查询。

谢谢,

编辑1; 谢谢大家的意见。在这里测试这个是我的触发器,我的语法是否正确? 我想尝试做的是,当输入数据时将其转换为TitleCase。

CREATE TRIGGER [dbo].[TableInsert]
ON [Table] 
AFTER INSERT
AS
BEGIN
DECLARE @InputString varchar(4000) 
DECLARE @Index          INT
DECLARE @Char           CHAR(1)
DECLARE @PrevChar       CHAR(1)
DECLARE @OutputString   VARCHAR(255)

SET @OutputString = LOWER(@InputString)
SET @Index = 1

WHILE @Index <= LEN(@InputString)
BEGIN
SET @Char     = SUBSTRING(@InputString, @Index, 1)
SET @PrevChar = CASE WHEN @Index = 1 THEN ' '
                     ELSE SUBSTRING(@InputString, @Index - 1, 1)
                END

IF @PrevChar IN (' ', ';', ':', '!', '?', ',', '.', '_', '-', '/', '&', '''', '(')
BEGIN
    IF @PrevChar != '''' OR UPPER(@Char) != 'S'
        SET @OutputString = STUFF(@OutputString, @Index, 1, UPPER(@Char))
END

SET @Index = @Index + 1
END

RETURN @OutputString

END

编辑2:  调用函数时使用了@InputString

update dbo.mytable
set fieldName=[dbo].[InitCap](@InputString);

在我的情况下,@InputString是正在更新的字段名。

2 个答案:

答案 0 :(得分:2)

你应该使用触发器:

CREATE TRIGGER [dbo].[TableInsert]
ON [Table] 
AFTER INSERT
AS
--Do your magic

答案 1 :(得分:0)

您可以查看使用Trigger,您可以在Inserts上执行此操作,因此每次插入新行时,它都会触发并运行您的查询。