gpt4 book ai didi

c# - 如何使用 ADO.NET 创建数据库触发器

转载 作者:太空宇宙 更新时间:2023-11-03 10:28:06 26 4
gpt4 key购买 nike

我正在尝试使用 SqlCommand 创建触发器,但出现错误:

Incorrect syntax near the keyword 'trigger'

当我在 SQL Server 中复制相同的查询时,它正在成功执行。
下面是 SQL 命令的样子。

command.CommandText = "CREATE TRIGGER tr_Korisnik" + korisnik.KorisnikID + "_FakturaStavka_ForInsert " +
"on Korisnik"+korisnik.KorisnikID+"_FakturaStavka " +
"FOR INSERT " +
"AS " +
"BEGIN " +
"DECLARE @ID int " +
"DECLARE @FakturaID int " +
"DECLARE @StavkaBr int " +
"SET @ID = (SELECT DokumentID from inserted) " +
"SET @FakturaID = (SELECT FakturaID from inserted) " +
"UPDATE Korisnik"+korisnik.KorisnikID+"_Fakturi SET BrStavki = BrStavki+1 WHERE DokumentID = @FakturaID " +
"SET @StavkaBr = (SELECT Korisnik"+korisnik.KorisnikID+"_Fakturi.BrStavki FROM Korisnik"+korisnik.KorisnikID+"_Fakturi WHERE DokumentID = @FakturaID) " +
"UPDATE Korisnik"+korisnik.KorisnikID+"_FakturaStavka SET StavkaBroj = @StavkaBr WHERE DokumentID = @ID END";


command.ExecuteNonQuery();

另外,在上面我有用于 CREATE TABLE 的 SQLCommands,它们可以正常工作。

我在 CREATE TRIGGER 之前尝试了 USE [databasename],但仍然没有。我删除了连接 +"korisnik.KorisnikID" 并制作了干净的名称,但仍然无法执行。

最佳答案

documentation for ExecuteNonQuery指出

You can use the ExecuteNonQuery to perform catalog operations (for example, querying the structure of a database or creating database objects such as tables), or to change the data in a database without using a DataSet by executing UPDATE, INSERT, or DELETE statements.

哪种方式证实了我的怀疑:您不能以这种方式创建触发器。

如果您想在代码中创建触发器,请使用 CLR Trigger .

关于c# - 如何使用 ADO.NET 创建数据库触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31095332/

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