当前位置:首页 » 存储配置 » 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

热点内容
光遇服务器人数过多怎么办 发布:2025-09-23 03:59:20 浏览:435
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 浏览:454