相关疑难解决方法(0)

SQL Server更新触发器,仅获取已修改字段

我知道COLUMNS_UPDATED,我需要一些快速的快捷方式(如果有人做了,我已经制作了一个,但如果有人可以节省我的时间,我会恭维它)

我需要基本上只有更新列值的XML,我需要这个用于复制目的.

SELECT*FROM inserted为我提供了每一列,但我只需要更新的列.

像下面这样......

CREATE TRIGGER DBCustomers_Insert
    ON DBCustomers
    AFTER UPDATE
AS
BEGIN
    DECLARE @sql as NVARCHAR(1024);
    SET @sql = 'SELECT ';


    I NEED HELP FOR FOLLOWING LINE ...., I can manually write every column, but I need 
    an automated routin which can work regardless of column specification
    for each column, if its modified append $sql = ',' + columnname...

    SET @sql = $sql + ' FROM inserted FOR XML RAW';

    DECLARE @x as XML;
    SET @x …
Run Code Online (Sandbox Code Playgroud)

sql sql-server triggers database-replication sql-update

17
推荐指数
3
解决办法
5万
查看次数

如何在SQL Server触发器中获取更新列的列表?

我想知道哪些列在更新操作期间更新操作在第一个scaaning书籍在线上看起来像COLUMNS_UPDATED是完美的解决方案但这个函数实际上不检查值是否已更改,它只检查更新子句中选择的列,有人有其他建议吗?

triggers sql-server-2005

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

在asp.net中缓存sql server数据,直到修改行为止

我经常以下列形式运行查询:

select * from SomeTable where id=12345
Run Code Online (Sandbox Code Playgroud)

页面后一页可能正在运行相同的查询,因为用户需要该行的值.通常我会获取一次并缓存它,但用户可以随时更改行,而其他用户也同时在SomeTable中进行更改,因此我无法对整个表进行缓存.我还有一个问题,即我们有一个用于Web服务器的集群,因此当缓存失效时,我无法在Web服务器上进行内部跟踪.

有没有办法检测到这一行发生了变化?SqlDependecyCache类可以在这里帮助单个行到多个Web服务器吗?是否有一些可以通知我的Web应用程序的触发器或其他范例?

我想要两全其美 - 网络服务器上的实时缓存更新,但我不想运行任何查询以查看该行是否已更改,因为我可以轻松地再次获取该行.

asp.net sql-server-2008

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

比较 SQL Server 2008 中删除的表和插入的表

我是 SQL Server 2008 的新手,需要大家的建议。我想找出一个表的 SQL Server 2008中的inserted和表中的更改值,因为我当前正在进行审计跟踪以保留旧值和新值。deleted如何循环所有列以找出删除和插入表中哪个字段的值发生变化?我尝试过 if else 语句进行比较

例如:

create trigger trg_XXX on dbo.table
after update
as
begin
    declare 
       @oldID varchar(6),
       @newID varchar(6)

    select @oldID = ID from deleted
    select @newID = ID from inserted

    if(@oldID != @newID)
       insert into table (a, b) values (@oldID, @newID)
    else
       print('do nothing')
Run Code Online (Sandbox Code Playgroud)

有没有办法使用游标循环删除和插入的表或任何替代方法?能给我一些例子吗?

sql sql-server audit-trail sql-server-2008

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