gpt4 book ai didi

sql-server-2008 - SQL Server 在线程中触发并运行 CLR 方法

转载 作者:IT王子 更新时间:2023-10-29 06:14:44 31 4
gpt4 key购买 nike

我想将数据更改记录到 sql 更新触发器中的 redis 数据库,由 c# dll 调用。但我不想为触发做任何延迟。就好像记录 redis 操作异步工作一样。

有什么办法可以做到这一点吗?

最佳答案

试试这个,它使用 PubSub 但概念几乎相同:

http://blogs.msdn.com/b/frcogno/archive/2014/11/14/microsoft-sql-server-meets-redis-an-elegant-logging-platform-at-your-doorstep.aspx

突出显示链接:

[SqlProcedure]
public static void Publish(SqlString redisServerAddress, SqlInt32 redisServerPort, SqlString channel, SqlString message)
{
using (RedisConnection rc = GetRedisConnection(redisServerAddress.Value, redisServerPort.Value))
{
rc.Publish(channel.Value, message.Value);
}
}

CREATE PROCEDURE Redis.Publish(@RedisServerAddress NVARCHAR(1024), @RedisServerPort INT, @Channel NVARCHAR(1024), @Message NVARCHAR(MAX))
AS EXTERNAL NAME [MindFlavor.RESP.SQLCLR]. [MindFlavor.RESP.SQLCLR.Redis].Publish;
GO

EXEC [MindFlavor].[Redis].[Publish] N'ubuntu-spare.pelucchi.local', 6379, N'msbackup:sql', @txt;

请注意,在某些环境中(例如 Azure),您需要将 clr 标记为 safe,如果您的 dll 或依赖项破坏 clr ,这将引发一些问题>安全实践。

关于sql-server-2008 - SQL Server 在线程中触发并运行 CLR 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29487179/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com