sql終止語句
⑴ C# 中如何立即停止sql 語句的執行
可以,如:
string sql ="select * from users";
SqlCommand cmd = new SqlCommand(sql,cnn);
//執行
cmd.ExecuteNonQuery();
//取消
cmd.Cancel();
⑵ 一條很長的SQL語句,我想讓它中途停止下來怎麼寫,網上說/*,結果並沒...
你把原句拿來,幫你分析。因為這個句子不規范,不知道你是否句子寫錯了,另外,停下來是什麼意思?要達到什麼目的。從你的語句分析,就是把users
中username為「」的記錄和users
中
滿足1=「1」且
口令為''的記錄連接後顯示出來,and
是一個雙重條件,
不需要時,可以不設置。不知能否幫到你
⑶ ORACLE觸發器中如何終止SQL語句的執行
拋出異常,比如:
if new.col1 is null then
RAISE_APPLICATION_ERROR(-20001, 'col1 is null.');
end if;
⑷ MYSQL中如何強制終止一條語句的執行
KILL命令的語法格式如下:KILL [CONNECTION | QUERY] thread_id
⑸ 如何終止SQL Server中的用戶進程
首先,我們在主資料庫中創建「KILL2」這個進程,代碼如下所示(參考圖一):
USE [master]
GO
IF EXISTS (SELECT * FROM master.dbo.sysobjects
WHERE id = OBJECT_ID(N'[kill2]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[kill2]
GO
--Usage1: Kill2 '51-57' --> Kills all the session IDs from 51 to 57
--Usage2: Kill2 '58' --> Kills the session IDs 58
--Usage3: Kill2 '51,56,100,58'
--> Kills the session IDs 51,56,100 and 58
--Usage4: Kill2 'DB=MyDatabase'
--> Kills all the session IDs that are connected
to the database "MyDatabase"
use master
go
set concat_null_yields_null off
go
create procere kill2 @param2 varchar(500)
as
--declare @param2 varchar(500)
declare @param varchar(500)
declare @startcount int
declare @killcmd varchar(100)
declare @endcount int
declare @spid int
declare @spid2 int
declare @tempvar varchar(100)
declare @tempvar2 varchar(100)
--set @param2 ='54'
set @param=REPLACE(@param2,' ','')
if CHARINDEX('-',@param) <> 0
begin
select @startcount= convert(int,SUBSTRING(@param,1,charindex('-',@param)-1))
select @endcount=convert(int,SUBSTRING(@param,charindex('-',@param)+1,(LEN(@param)-charindex('-',@param))))
print 'Killing all SPIDs from ' + convert(varchar(100),@startcount)+' to ' +convert(varchar(100),@endcount)
while @startcount <=@endcount
begin
set @spid=(select spid from master.dbo.sysprocesses where spid=@startcount and spid>50)
if @spid = @startcount
begin
print 'Killing '+convert(varchar(100),@startcount)
set @killcmd ='Kill '+convert(varchar(100),@startcount)
exec(@killcmd)
end
else
begin
Print 'Cannot kill the SPID ' +convert(varchar(100),@startcount) + ' because it does not Exist'
end
set @startcount=@startcount + 1
end
end
if CHARINDEX(',',@param) <> 0
begin
set @tempvar =@param
while charindex(',',@tempvar ) <> 0
begin
SET @tempvar2=left(@tempvar,charindex(',',@tempvar)-1)
set @spid=(select spid from master.dbo.sysprocesses where spid=CONVERT(varchar(100),@tempvar2) and spid>50)
if @spid = CONVERT(varchar(100),@tempvar2)
begin
print 'Killing '+CONVERT(varchar(100),@tempvar2)
set @killcmd='Kill '+CONVERT(varchar(100),@tempvar2)
exec (@killcmd)
end
else
begin
Print 'Cannot kill the SPID ' +CONVERT(varchar(100),@tempvar2) + ' because it does not Exist'
end
set @tempvar =REPLACE(@tempvar,left(@tempvar,charindex(',',@tempvar)),'')
end
set @spid=(select spid from master.dbo.sysprocesses where spid=CONVERT(varchar(100),@tempvar) and spid>50)
if @spid = CONVERT(varchar(100),@tempvar)
begin
print 'Killing '+CONVERT(varchar(100),@tempvar)
set @killcmd='Kill '+CONVERT(varchar(100),@tempvar)
exec (@killcmd)
end
else
begin
Print 'Cannot kill the SPID ' +CONVERT(varchar(100),@tempvar) + ' because it does not Exist'
end
end
if CHARINDEX('=',@param2) <>0
begin
print 'Killing all the SPIDs that are connected to the database '+RIGHT(@param2,(len(@param2)-3))
declare dbcursor
cursor forward_only for select SPID from master.dbo.sysprocesses where DB_NAME(dbid) = RIGHT(@param2,(len(@param2)-3))
open dbcursor
fetch dbcursor into @spid
while @@FETCH_STATUS =0
begin
set @spid2=(select spid from master.dbo.sysprocesses where spid=@spid and spid>50)
if @spid = @spid2 begin
print 'Killing '+CONVERT(varchar(100),@spid2)
set @killcmd='Kill '+CONVERT(varchar(100),@spid2)
exec (@killcmd)
end
else
begin
Print 'Cannot kill the SPID ' +CONVERT(varchar(100),@spid2) + ' because it does not Exist'
end
fetch dbcursor into @spid
end
close dbcursor
deallocate dbcursor
end
if CHARINDEX('-',@param)=0 and CHARINDEX(',',@param) = 0 and CHARINDEX('=',@param)=0
begin
set @spid=(select spid from master.dbo.sysprocesses where spid=CONVERT(varchar(100),@param) and spid>50)
if @spid = CONVERT(varchar(100),@param)
begin
print 'Killing '+CONVERT(varchar(100),@param)
set @killcmd='Kill '+CONVERT(varchar(100),@param)
exec (@killcmd)
end
else
begin
Print 'Cannot kill the SPID ' +CONVERT(varchar(100),@param) + ' because it does not Exist'
end
end
go
--kill2 '51'
--go
--kill2 '51-56'
--go
--kill2 '56,57,58,52'
--go
--kill2 'db=AdventureWorks2008'
--kill2 'db=My Database'
--go
--sp_who
圖一
現在,我們假設進程ID(SPID)為51、52、53、54、55、57這幾個進程(見圖二)連接到了SQL Server資料庫,而我們只想把進程ID為54、55和57的進程結束掉。
圖二
執行以下命令。注意,在這個例子當中還在命令中加入了其他幾個SQL Server中不存在的SPID:61和100。
use master
go
kill2 '54,57,55,61,100'
go
運行結果:
Killing 54
Killing 57
Msg 6104, Level 16, State 1, Line 1
Cannot use KILL to kill your own process.
Cannot kill the SPID 55 because it does not Exist
Cannot kill the SPID 61 because it does not Exist
Cannot kill the SPID 100 because it does not Exist
圖三
我們可以從結果(見圖三)看到,執行指令後成功終止了SPID 54。當試圖終止57時失敗了。同時結果也顯示了為什麼沒能終止特定SPID的信息
下面,假設我們有51、52、53、54、55、57、58、59和60這幾個SPID,而我們的目標是結束SPID從25到70的進程。
執行以下命令:
use master
go
kill2 '25-75'
go
運行結果:
Killing all SPIDs from 25 to 75
Cannot kill the SPID 25 because it does not Exist
…..
Cannot kill the SPID 48 because it does not Exist
Cannot kill the SPID 49 because it does not Exist
Cannot kill the SPID 50 because it does not Exist
Killing 51
Killing 52
Killing 53
Killing 54
Killing 55
Cannot kill the SPID 56 because it does not Exist
Killing 57
Msg 6104, Level 16, State 1, Line 1
Cannot use KILL to kill your own process.
Killing 58
Killing 59
Killing 60
Cannot kill the SPID 61 because it does not Exist
.....
Cannot kill the SPID 75 because it does not Exist
圖四
從結果(見圖四)我們可以看到「KILL2」存儲過程忽略了所有SPID小於50的連接,而結束了從51到70的所有進程。
接下來,假設我們要終結掉所有連接到資料庫AdventureWorks2008的會話,同時又假設SPID為53、54、58和60的進程連接到了該資料庫(見圖五)。
圖五
現在,我們執行以下的T-SQL語句結束掉所有這些會話。
Use master
go
kill2 'db=AdventureWorks2008'
go
運行結果:
Killing all the SPIDs that are connected to the database AdventureWorks2008
Killing 53
Killing 54
Killing 58
Killing 60
圖六
從結果(見圖六)我們可以看到「KILL2」存儲過程終止了所有連接到AdventureWorks2008資料庫的會話。
用法四
「KILL2」存儲過程的第四種用法類似於「KILL命令,也就是一次解決一個會話,如下所示:
Use master
go
kill2 '56'
go
⑹ mysql怎麼終止當前正在執行的sql語句
操作步驟:
show processlist;
找出你要停止的語句
然後找出你要終止的語句的id
在系統下mysqladmin -uroot -ppassword kill 要殺的ID
⑺ ORACLE觸發器中如何終止SQL語句
create or replace trigger insert_stopbefore insert on tb --tb為你的表名for each rowdeclare insert_excp exception; v_tm varchar2(4);begin v_tm := to_char(sysdate,'hh24mi'); if (to_number(v_tm)>=2200 and to_number(v_tm)<=2359) or v_tm='0000' then raise insert_excp; end if;exception when insert_excp then dbms_output.put_line('在22:00---00:00不可以插入數據'); when others then dbms_output.put_line(sqlcode || ': '||sqlerrm);end;
⑻ 各位是怎麼終止一個正在執行的SQL語句的
額,函數=方法=易語言的模塊
如何停止函數,你又沒有說什麼語言(⊙o⊙)…好吧,有函數的肯定都差不多吧
還有你也沒有說要停止什麼的函數,停止啥(函數的代碼是迭代語句?)?
跳轉語句:break(結束迭代語句,直接結束咯),continue(結束本次的運行,循環)goto(如:gotoA;如果執行到了gotoA;,就跳轉到A;代碼的下面,這也差不多符合吧!)return(返回的語句),goto符合你的代碼吧,直接跳轉了,也就是執行到了goto的時候,函數就不再執行了。俺是一名渣渣,就易語言厲害,其他正在學習,採納不採納,俺也不在乎,走起
goto A;
A:
{
Console.WriteLine("cg");
}
⑼ sql錯誤:將截斷字元串或二進制數據語句已終止
首先 自動+1 是針對數值而言的,也就是Int,你設置Varchar是不會自動加1的,其次 你的欄位類型是varchar(17),那麼最多接受17個字元的長度 ,你插入的數據中有超過17的,就會放不下
⑽ 如何中斷 sql 語句
中斷循環break;終止批處理return