我試圖創建的SqlCommand觸發器,我得到的錯誤數據庫觸發器:「關鍵字‘觸發’附近有語法錯誤」。當我在SQL Server中複製相同的查詢時,它正在成功執行。以下是SQLCommand的外觀。如何創建與ADO.NET
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,仍然一無所獲。 我刪除了concatinations +「korisnik.KorisnikID」,並取得乾淨的名字,仍然不能執行它
當更新,插入,刪除等DML運行時,觸發器用於自動執行。您不能使用ADO.Net API創建或執行觸發器 –
請查看此鏈接(http://stackoverflow.com/questions/2868704/why-am-i-unable-to-create-a-trigger-使用-my-sqlcommand) –
1)這個觸發器是錯誤的,因爲它假定INSERT語句/操作只會插入一行('SET @ID =(從插入的SELECT DokumentID)')。 2)大多數情況下,創建觸發器是一次性工作:它們不是在運行時創建的。相反,它們是使用SQL Server Manegement Studio創建的。 3)請解釋這個觸發器的目標。 –