标签: triggers

SQL Server 2005/2008中的异步触发器

我有触发器操作并将大量数据插入到更改跟踪表中,以便在每次插入,更新和删除时进行审计.

这个触发器很好地完成了它的工作,通过使用它,我们能够根据每个事务的业务需求记录所需的旧值/新值.

但是,在源表有很多列的某些情况下,事务完成最多可能需要30秒才能完成,这是不可接受的.

有没有办法使触发器异步运行?任何例子.

sql sql-server triggers sql-server-2005

34
推荐指数
2
解决办法
3万
查看次数

JQuery事件模型并防止重复处理程序

我再次想要使用$("divid").load(...)将包含其自己脚本的页面加载到div中.我面临的问题与事件有关.假设我们从父页面和我们绑定的加载页面("猴子")触发("猴子")并且只是做一个警报("猴子绑定").如果多次调用相同的load方法,则会多次调用bind.现在我可以在绑定之前取消绑定它,或者在绑定之前检查处理程序的数量,然后不绑定它以防止这种情况.这两个选项都不是可伸缩的,如果我以后想要绑定到另一个"子页面"(加载到div中的页面)中的触发器.

我理想的做法是检查我即将添加的处理程序是否已经存在,但我仍然想要使用匿名处理程序...(我想的最后一个请求有点问).目前我有一个解决方法,使用预定义/命名方法,然后在绑定之前检查它.

// Found this on StackOverflow
function getFunctionName(fn)
{
 var rgx = /^function\s+([^\(\s]+)/
 var matches = rgx.exec(fn.toString());
 return matches ? matches[1] : "(anonymous)"
}

function HandlerExists(triggerName, handlerName) {
        exists = false;
        if ($(document).data('events') !== undefined) {
            var event = $(document).data('events')[triggerName];
            if(event !== undefined)
            {
                $.each(event, function(i, handler) {
                    alert(handlerName);
                    if (getFunctionName(handler) == handlerName) {
                        exists = true;
                    }
                });
            }
        }
        return exists;
    }
Run Code Online (Sandbox Code Playgroud)

这是一种非常粗暴的方式,我觉得,但似乎工作.我只是在绑定之前执行以下操作:

if (!HandlerExists("test", "theMethod")) {
    $(document).bind("test", theMethod);
}
Run Code Online (Sandbox Code Playgroud)

有没有人有更优雅的解决方案?例如,有没有办法检查特定的脚本是否已加载?所以我可以使用getScript()在第一次加载时从子页面加载js,然后根本不加载它在后续加载(并且只是触发一个触发器,由他预先存在的js处理).

javascript jquery events triggers bind

33
推荐指数
4
解决办法
4万
查看次数

如何在XAML中使用枚举类型?

我正在学习WPF,我遇到了以下问题:

我的另一个命名空间中的枚举类型比我的XAML:

 public enum NodeType
    {
        Type_SYSTEM = 1,              // System
        Type_DB = 2,                  // Database
        Type_ROOT = 512,              // Root folder
        Type_FOLDER = 1024,           // Folder
    }
Run Code Online (Sandbox Code Playgroud)

在我的XAML中,我想用整数触发图像

<Image.Style>
    <Style TargetType="{x:Type Image}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Type}" Value="{NodeType: }">
                <Setter Property="Source" Value="/Images/DB.PNG"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding Type}" Value="128">
                <Setter Property="Source" Value="/Images/SERVER.PNG"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</Image.Style>
Run Code Online (Sandbox Code Playgroud)

有没有办法获取整数值并直接在XAML代码中将其与枚举类型进行比较?

我的枚举是命名空间 AnotherNamespace.Types

<DataTrigger Binding="{Binding IntegerType}" Value="MyEnumType.Type_DB">
                                        <Setter Property="Source" Value="/Images/SERVER.PNG"/> 
Run Code Online (Sandbox Code Playgroud)

c# wpf enums xaml triggers

33
推荐指数
2
解决办法
4万
查看次数

使用MySQL触发器将所有表更改记录到辅助表

我有一张桌子:

CREATE TABLE `data_table` (
`data_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`field1` INT NOT NULL ,
`field2` INT NOT NULL ,
`field3` INT NOT NULL
) ENGINE = MYISAM ;
Run Code Online (Sandbox Code Playgroud)

我会记录任何机会到field1,2或3:

CREATE TABLE `data_tracking` (
`tracking_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`data_id` INT NOT NULL ,
`field` VARCHAR( 50 ) NOT NULL ,
`old_value` INT NOT NULL ,
`new_value` INT NOT NULL ,
`modified` DATETIME NOT NULL
) ENGINE = MYISAM ; 
Run Code Online (Sandbox Code Playgroud)

我正在使用MySQL 5,我想创建一个触发器.我想在data_table更新后随时在data_tracking中插入一个新行,并记录旧的/更新的值,以及更改的字段.我尝试了以下没有任何成功.

DELIMITER $$ …
Run Code Online (Sandbox Code Playgroud)

mysql triggers

32
推荐指数
1
解决办法
5万
查看次数

选择更改时使用JQuery检测

我有一个Jqgrid,其中dinamically生成这样的选择:

    <select id="won" style="width: 65px;">
       <option value="">-WON?</option>
       <option value="1" selected>Bet1</option>
       <option value="2" >Bet2</option>
       <option value="3" >Bet3</option>
    </select>
Run Code Online (Sandbox Code Playgroud)

每个人都有不同的选择.我想检测一个选择何时更改,以便我可以将其保存在我的数据库中.

我正在尝试:

         $('#won').change(function(){
               alert("PROBANDO");
          });
Run Code Online (Sandbox Code Playgroud)

但根本不工作.任何帮助将是apreciated谢谢.

html jquery triggers jqgrid

32
推荐指数
2
解决办法
5万
查看次数

如何在SQL Server表中添加"上次修改"和"已创建"列?

我正在为SQL Server 2012数据库设计一个新的数据库模式.

每个表都应该调用两个额外的列modified,created这些列应该在插入或更新行时自动更改.

我不知道怎样才能到达那里.

我认为触发器是处理它的最佳方式.

我试图找到触发器的例子..但是我发现在另一个表中插入数据的教程等.

我认为这是一个很常见的场景,但我还没有找到答案.

t-sql sql-server triggers sql-server-2012

32
推荐指数
2
解决办法
6万
查看次数

Sql Server触发器将值从新行插入另一个表

我有一个使用asp.net成员资格模式的网站.我想在aspnet_users表上设置一个触发器,它将user_id和新行的user_name插入到另一个表中.

如何从最后一次插入中获取值?

我可以选择最后一个date_created,但这看起来很臭.有没有更好的办法?

sql sql-server triggers

31
推荐指数
4
解决办法
14万
查看次数

如何在MySql触发器中中止INSERT操作?

我有一个包含url的表和一个表示其参数的字符串.问题是我想要一个url和一个参数字符串作为表的唯一约束 - 也就是说没有条目可以具有相同的url和参数字符串.参数字符串可以是任意长度(比800bytes长左右这是一个MySQL的关键最大长度,所以因为它抛出一个错误,我不能用独有的(URL,则params)...).

我考虑使用触发器来执行此操作,但如果触发器发现插入即将插入重复条目,如何抛出异常/引发错误?我想我想抛出MySqlException,就像MySql一样,重复主键等,所以我可以用我的C#代码捕获它.

我在触发器中有两个部分需要帮助:...中止抛出异常到C#...如何向C#抛出异常等?...允许插入... - 如果没有重复输入,我如何才允许插入?

继承人触发代码:

CREATE TRIGGER urls_check_duplicates
BEFORE INSERT ON urls
FOR EACH ROW

BEGIN
DECLARE num_rows INTEGER;

SELECT COUNT(*)
INTO num_rows
FROM urls
WHERE url = NEW.url AND params = NEW.params;

IF num_rows > 0 THEN
   ... ABORT/throw exception to C# ...
ELSE
   ... Allow insert ...
END
Run Code Online (Sandbox Code Playgroud)

mysql triggers duplicates

31
推荐指数
3
解决办法
4万
查看次数

在触发器函数中使用动态表名INSERT

我不确定如何实现以下内容:

CREATE OR REPLACE FUNCTION fnJobQueueBEFORE() RETURNS trigger AS $$
    DECLARE
        shadowname varchar := TG_TABLE_NAME || 'shadow';
    BEGIN
        INSERT INTO shadowname VALUES(OLD.*);
        RETURN OLD;
    END;
$$
LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

即将值插入到具有动态生成名称的表中.
执行上面的代码会产生:

ERROR:  relation "shadowname" does not exist
LINE 1: INSERT INTO shadowname VALUES(OLD.*)
Run Code Online (Sandbox Code Playgroud)

它似乎表明变量不会作为表名扩展/允许.我在Postgres手册中没有发现这个.

我已经尝试过EXECUTE这样的事情:

  EXECUTE 'INSERT INTO ' || quote_ident(shadowname) || ' VALUES ' || OLD.*;
Run Code Online (Sandbox Code Playgroud)

但没有运气:

ERROR:  syntax error at or near ","
LINE 1: INSERT INTO personenshadow VALUES (1,sven,,,)
Run Code Online (Sandbox Code Playgroud)

RECORD类型似乎失去了:OLD.*似乎被转换为字符串,并得到的重新解析,导致各种各样的类型的问题(例如NULL值). …

postgresql triggers dynamic-sql plpgsql

31
推荐指数
1
解决办法
2万
查看次数

Postgresql,如果存在具有某些唯一值的行,则更新,否则插入

我有一个URL表.他们包含

(id int主键,url字符变化唯一,内容字符变化,最后分析日期).

我想创建触发器或其他东西(规则可能是),所以每次我从我的java程序插入时,如果存在具有这种URL的行,它会更新一些单行.否则它应该执行插入.

请你能在Postgresql中提供完整的代码吗?谢谢.

postgresql triggers plpgsql

31
推荐指数
4
解决办法
8万
查看次数