我创建了一个触发器,像这样调用一个程序集:
CREATE TRIGGER Testrigger ON STATION
FOR INSERT
AS EXTERNAL NAME assemblytest.[WriteTimeInfile.Program].Testrigger
那个程序集中的.NET代码做了类似于这样的事情:
namespace WriteTimeInfile
{
public class Program
{
[SqlTrigger(Name = @"Testrigger", Target = "[dbo].[STATION]", Event = "FOR INSERT, UPDATE, DELETE")]
public static void Testrigger()
{
File.AppendAllText(@"C:\Users\Vivien\date.txt",
DateTime.Now.ToString() + Environment.NewLine);
}
}
}
我希望能够将已创建的行或更新的行作为参数传递,类似于以下内容:
CREATE TRIGGER Testrigger ON STATION
AFTER INSERT
AS
EXTERNAL NAME assemblytest.[WriteTimeInfile.Program].Testrigger (STATION.ID)
我在StackOverflow上发现了一个7年前的topic,其中说没有办法向CLR程序集传递参数。
我想问一下,在最近的SQL Server版本中是否已经有可能实现。
您知道是否有方法可以实现,并且如果有,如何实现吗?