如何判断SQLSERVER存储过程是否正在执行
十余年的丰宁网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整丰宁建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“丰宁网站设计”,“丰宁网站推广”以来,每个客户项目都认真落实执行。
select * from master.dbo.sysprocesses
-- 列出 spid 50 的.
对每个 spid 用 dbcc inputbuffer(spid) 看执行的文本, 如果搜索完所有的 spid, 其执行的文本中都没有包括你的存储过程.
则基本上可判断出存储过程未执行.
标量值函数返回一个确定类型的标量值,其返回类型除text、ntext、image、cursor、timestamp、和table类型外的其他数据类型,函数体语句定义在begin-end内部。在return(注意有带s)语句后定义返回值的数据类型,并且函数的最后一条语句必须为return。
MySQL:
在MySQL中使用FIND_IN_SET( st , str )函数来判断某个字符串是否包含某字符。其中,st表示需要判断的字符,str表示相应的字符串字段。如果包含,则返回st字符在字符串中的位置,以1为起点。如果不包含,则返回0;
SQLServer:
在SQLServer中使用CHARINDEX(','+ st +',' , ','+ str +',')函数来判断某个字符串是否包含某字符。其中,st表示需要判断的字符,str表示相应的字符串字段。如果包含,则返回st字符在字符串中的位置,以1为起点。如果不包含,则返回0;
注意:在SQLServer函数中,st必须为字符串,使用int则无效,如果是数字类型字符,必须使用双引号。
两种方法:
方法1:先转换成字符串,然后判断小数点后是否都为0
方法2:用取余数来判断
--/*
--unicode编码范围:
--汉字:[0x4e00,0x9fa5](或十进制[19968,40869])
--数字:[0x30,0x39](或十进制[48, 57])
--小写字母:[0x61,0x7a](或十进制[97, 122])
--大写字母:[0x41,0x5a](或十进制[65, 90])
--根据编码范围来判断
--*/
--创建
create proc p_A_VIC
as
declare @count int
declare @i int
declare @text nvarchar(50)
set @i = 0
set @count = (select COUNT (*) from table )
while(@i @count )
begin
set @i +=1
--sid代表有一定循环规律的,若是无序的可以添加一个序列(Row_Number() OVER ---)。
--select * from (SELECT *, Row_Number() OVER ( ORDER BY [sid] ) num FROM s--table ) as s where num = 3
set @text = (select a from table where [sid] = @i)
if unicode(@text) between 19968 And 40869 or unicode(@text) between 97 And 122 or unicode('a') between 65 And 90
begin
print 0
end
else
print @text
end
--执行
exec p_A_VIC