當前位置:首頁 » 編程語言 » 怎麼判斷sql觸發器語句執行是否成功
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

怎麼判斷sql觸發器語句執行是否成功

發布時間: 2023-01-13 06:44:33

1. 如何判斷插入的 sql 語句是否執行成功

如果表中有自增ID列在你插入的語句後面加一句select @@IDENTITY;如:insert into table1(name)values('123');select @@IDENTITY;意思是返回剛插入的自增列的值,判斷返回值大於0就是插入成功

2. 如何判斷sql是否執行成功

一般沒有報錯就是執行成功了,但是執行的語句不一定會有返回結果。

3. 如何判斷SQL語句執行成功 十萬火急!!!!!!!!!

ExecuteNonQuery在執行資料庫結構的操作時如果操作成功時返回的是-1,所以判斷這種情況下是否成功,需要用try-catch,一個簡單的例子:
try
{
con.Open();
int count = cmd.ExecuteNonQuery();
if (count > 0)
{
Console.WriteLine("Update Success!!!");
}
else
{
Console.WriteLine("No Updates!!!");
}
}
catch (SqlException ex)
{
Console.WriteLine("Update Failed coz.. " + ex.Message);
}
finally
{
con.Close();
}

4. 在oracle中怎麼判斷一個sql語句已成功執行

我說一下我知道的啊:
如果沒報錯的話,一般就說明報告成功了。
另一種方法:
從v$sql這個視圖裡面進行查詢:假設執行的語句為sqlContent
select * from v$sql where sql_text='sqlContent'
sqlContent中一定要注意大小寫問題,如果能查到數據,就說明執行成功了。這個是可以肯定的。

5. 存儲過程中用什麼來判斷sql語句是否執行成功

Transact-SQL 參考

@@ERROR
返回最後執行的 Transact-SQL 語句的錯誤代碼。

語法
@@ERROR

返回類型
integer

注釋
當 Microsoft® SQL Server™ 完成 Transact-SQL 語句的執行時,如果語句執行成功,則 @@ERROR 設置為 0。若出現一個錯誤,則返回一條錯誤信息。@@ERROR 返回此錯誤信息代碼,直到另一條 Transact-SQL 語句被執行。您可以在 sysmessages 系統表中查看與 @@ERROR 錯誤代碼相關的文本信息。

由於 @@ERROR 在每一條語句執行後被清除並且重置,應在語句驗證後立即檢查它,或將其保存到一個局部變數中以備事後查看。

示例
A.用 @@ERROR 檢測一個特定錯誤
下面的示例用 @@ERROR 在一個 UPDATE 語句中檢測限制檢查沖突(錯誤 #547)。

USE pubs
GO
UPDATE authors SET au_id = '172 32 1176'
WHERE au_id = "172-32-1176"

IF @@ERROR = 547
print "A check constraint violation occurred"

B.用 @@ERROR 有條件地退出一個過程
在此示例中,IF...ELSE 語句在存儲過程中的 INSERT 語句後檢測 @@ERROR。@@ERROR 變數的值將決定傳給調用程序的返回值,以指示此過程的成功與失敗。

USE pubs
GO

-- Create the procere.
CREATE PROCEDURE add_author
@au_id varchar(11),@au_lname varchar(40),
@au_fname varchar(20),@phone char(12),
@address varchar(40) = NULL,@city varchar(20) = NULL,
@state char(2) = NULL,@zip char(5) = NULL,
@contract bit = NULL
AS

-- Execute the INSERT statement.
INSERT INTO authors
(au_id, au_lname, au_fname, phone, address,
city, state, zip, contract) values
(@au_id,@au_lname,@au_fname,@phone,@address,
@city,@state,@zip,@contract)

-- Test the error value.
IF @@ERROR <> 0
BEGIN
-- Return 99 to the calling program to indicate failure.
PRINT "An error occurred loading the new author information"
RETURN(99)
END
ELSE
BEGIN
-- Return 0 to the calling program to indicate success.
PRINT "The new author information has been loaded"
RETURN(0)
END
GO

C.用 @@ERROR 檢測幾條語句的成功
下面的示例取決於 INSERT 和 DELETE 語句的成功操作。局部變數在兩條語句後均被設置為 @@ERROR 的值,並且用於此操作的共享錯誤處理常式中。

USE pubs
GO
DECLARE @del_error int, @ins_error int
-- Start a transaction.
BEGIN TRAN

-- Execute the DELETE statement.
DELETE authors
WHERE au_id = '409-56-7088'

-- Set a variable to the error value for
-- the DELETE statement.
SELECT @del_error = @@ERROR

-- Execute the INSERT statement.
INSERT authors
VALUES('409-56-7008', 'Bennet', 'Abraham', '415 658-9932',
'6223 Bateman St.', 'Berkeley', 'CA', '94705', 1)
-- Set a variable to the error value for
-- the INSERT statement.
SELECT @ins_error = @@ERROR

-- Test the error values.
IF @del_error = 0 AND @ins_error = 0
BEGIN
-- Success. Commit the transaction.
PRINT "The author information has been replaced"
COMMIT TRAN
END
ELSE
BEGIN
-- An error occurred. Indicate which operation(s) failed
-- and roll back the transaction.
IF @del_error <> 0
PRINT "An error occurred ring execution of the DELETE
statement."

IF @ins_error <> 0
PRINT "An error occurred ring execution of the INSERT
statement."

ROLLBACK TRAN
END
GO

D. 與 @@ROWCOUNT 一同使用 @@ERROR
下面的示例用 @@ERROR 和 @@ROWCOUNT 驗證一條 UPDATE 語句的操作。為任何可能出現的錯誤而檢驗 @@ERROR 的值,而用 @@ROWCOUNT 保證更新已成功應用於表中的某行。

USE pubs
GO
CREATE PROCEDURE change_publisher
@title_id tid,
@new_pub_id char(4)
AS

-- Declare variables used in error checking.
DECLARE @error_var int, @rowcount_var int

-- Execute the UPDATE statement.
UPDATE titles SET pub_id = @new_pub_id
WHERE title_id = @title_id

-- Save the @@ERROR and @@ROWCOUNT values in local
-- variables before they are cleared.
SELECT @error_var = @@ERROR, @rowcount_var = @@ROWCOUNT

-- Check for errors. If an invalid @new_pub_id was specified
-- the UPDATE statement returns a foreign-key violation error #547.
IF @error_var <> 0
BEGIN
IF @error_var = 547
BEGIN
PRINT "ERROR: Invalid ID specified for new publisher"
RETURN(1)
END
ELSE
BEGIN
PRINT "ERROR: Unhandled error occurred"
RETURN(2)
END
END

-- Check the rowcount. @rowcount_var is set to 0
-- if an invalid @title_id was specified.
IF @rowcount_var = 0
BEGIN
PRINT "Warning: The title_id specified is not valid"
RETURN(1)
END
ELSE
BEGIN
PRINT "The book has been updated with the new publisher"
RETURN(0)
END
GO

6. oracle存儲過程怎麼判斷一條sql語句是否成功

oracle存儲過程判斷一條sql語句是否成功的方法是增加exception處理,如果沒有拋出exception,那就證明正常執行了。

在Oracle中,異常分為以下兩類:

Oracle預定義異常

用戶自定義異常

在Oracle中預定義的異常如下表所示:

在Oracle中有以下三種方式觸發異常:

  • 由Oracle自動觸發異常

  • 使用RAISE語句手工觸發

  • 調用存儲過程RAISE_APPLICATION_ERROR手工觸發

代碼將演示Oracle自動觸發異常:

-- Created on 2015-7-14 by JellyThink
declare
iA NUMBER(2) := 10;
begin
iA := iA / 0; -- Oracle自動觸發異常
dbms_output.put_line(iA);
exception
when ZERO_DIVIDE then
dbms_output.put_line('Error Code:' || SQLCODE || ' ' || SQLERRM);
when others then
dbms_output.put_line('Others Exception');
end;

7. 如何判斷插入的 SQL 語句是否執行成功

int rowsAffected = stmt.executeUpdate("delete Customers");

if (rowsAffected > 0) {
// 成功了。
} else {
// 記錄本來就不存在,或就在這之前的一瞬間被另一個人已經刪除了。
}

8. 如何判斷SQL語句是否執行成功

if @@ROWCOUNT > 0 and @@ERROR = 0 @@ROWCOUNT > 0表示影響行數大於0 @@ERROR =0表示無出錯,兩個結合判斷執行成功,if語句放在要執行的SQL語句後面就行了

9. PHP中如何判斷SQL語句是否成功執行

你可以直接把執行SQL語句的函數執行的結果保存為變數,然後判斷

例:我這里用的mysql_query函數哦:
<?php
///....坑爹的代碼
$res=mysql_query($sql);
if($res)
echo '執行成功';
else
echo '執行失敗';
?>

但是這樣的執行成功只是你的語句正確的執行,但是不代表100%可以成功執行對資料庫的操作,比如說你數據表裡沒有記錄了,你執行delete語句,雖然成功了, 但是刪除的行數是0,這是可能的。

10. 如何判斷插入的 SQL 語句是否執行成功

	INSERTINTO[table_name](.....)
VALUES(....)

if@@error<>0or@@rowcount<>1
begin
raiserror('寫入時錯誤',16,1)
return
end

說明:

@@error此函數可以捕獲執行時發生的錯誤編號,若不為0,則表示插入失敗;

@@rowcount此函數可以捕獲插入語句所影響的行數,若不為1,則表示插入時出現了問題。