當前位置:首頁 » 存儲配置 » mssql存儲過程查詢

mssql存儲過程查詢

發布時間: 2025-09-23 02:30:43

㈠ 在MS sql Server中怎麼查看正在執行的SQL

有二種方式來查看正在執行的SQL語句

  1. 使用SQL自帶的SQL Server Profiler,以可視化界面的方式來查看。

    從開始=》所有程序=》Microsoft SQL Server 2008=》性能工具打開Profiler工具,也可以打開SQL Server Management Studio=》工具=》SQL Server Profiler。

    然後選擇文件=》新建=》跟蹤打開一個連接窗口,選擇將要跟蹤的伺服器實例然後連接,並打開「跟蹤屬性」對話框,點運行即可看到正在執行的SQL語句。

  2. 使用SQL語句來查看正在運行的語句,如下

    SELECT [Spid] = session_id ,
    ecid ,
    [Database] = DB_NAME(sp.dbid) ,
    [User] = nt_username ,
    [Status] = er.status ,
    [Wait] = wait_type ,
    [Indivial Query] = SUBSTRING(qt.text,
    er.statement_start_offset / 2,
    ( CASE WHEN er.statement_end_offset = -1
    THEN LEN(CONVERT(NVARCHAR(MAX), qt.text))
    * 2
    ELSE er.statement_end_offset
    END - er.statement_start_offset )
    / 2) ,
    [Parent Query] = qt.text ,
    Program = program_name ,
    hostname ,
    nt_domain ,
    start_time
    FROM sys.dm_exec_requests er
    INNER JOIN sys.sysprocesses sp ON er.session_id = sp.spid
    CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) AS qt
    WHERE session_id > 50 -- Ignore system spids.
    AND session_id NOT IN ( @@SPID ) -- Ignore this current statement.
    ORDER BY 1 ,
    2


㈡ 關於mysql存儲過程

create table mytb
(tid int,
subject varchar(100),
content varchar(100))

eg:測試數據:
20 計算機應用 應用軟體開發
21 計算機操作系統 操作系統詳解
22 c# c#開發實戰
=======================================
說明一點:tid編號是連續的,如(1,2,3,4···)

存儲過程如下,測試通過:

create proc my_search
@beg_id int ,
@end_id int
as

declare @names varchar(200),
@bcp varchar(8000)
if(@beg_id<@end_id)
begin

while @beg_id<=@end_id
begin
select @names=subject from mytb where tid=@beg_id
set @bcp = 'bcp "SELECT content FROM 資料庫名.dbo.mytb where tid = ' + rtrim(@beg_id) + '" queryout "E:\11\' + rtrim(@names) + '.txt" -c -U"sa" -P"sa"'

EXEC master..xp_cmdshell @bcp
set @beg_id=@beg_id+1
end
end

==================加路徑後過程==============

--exec my_search 20,21,'E:\11'

ALTER proc my_search
@beg_id int ,
@end_id int ,
@path varchar(200)
as

if(right(@path,1)='\')
begin
set @path=left(@path,len(@path)-1)
end

declare @names varchar(200),
@bcp varchar(8000)
if(@beg_id<@end_id)
begin

while @beg_id<=@end_id
begin
select @names=subject from mytb where tid=@beg_id
set @bcp = 'bcp "SELECT content FROM cdma.dbo.mytb where tid = ' + rtrim(@beg_id) + '" queryout "'+@path+'\' + rtrim(@names) + '.txt" -c -U"sa" -P"sa"'

EXEC master..xp_cmdshell @bcp
set @beg_id=@beg_id+1
end
end

=======
呵呵,很抱歉啊 樓主,沒能實現你的要求,
MSSQL我不熟,我想語法大概也是差不多吧,

㈢ mssql 存儲過程中循環如何寫,在循環中用什麼語句跳出循環呢,在線等

給你個例子:

for loop是這樣的:
createprocere pro
begin
declare aintdefault1;
label1: loop
if a<6then
selecta;
seta=a+1;
iterate label1;
endif;
leave label1;跳出循環
endloop label1;
end

while是這樣的:
createprocere pro
begin
declare aintdefault4;
while a<10 do
selecta;
seta=a+1;
endwhile;
end

熱點內容
androidzip解壓密碼 發布:2025-09-23 03:42:05 瀏覽:363
windows並行編譯 發布:2025-09-23 03:33:38 瀏覽:797
門禁編程 發布:2025-09-23 03:32:55 瀏覽:888
安卓上網記錄在哪裡找 發布:2025-09-23 03:23:26 瀏覽:31
固態存儲晶元 發布:2025-09-23 03:22:06 瀏覽:282
androidsocket手機 發布:2025-09-23 03:21:57 瀏覽:642
linux終端設置快捷鍵設置 發布:2025-09-23 03:12:16 瀏覽:998
sqlsa默認密碼 發布:2025-09-23 02:36:50 瀏覽:149
安卓什麼手機地圖好用 發布:2025-09-23 02:35:14 瀏覽:453
古老八字演算法 發布:2025-09-23 02:32:15 瀏覽:660