SQL Server如何查看一个数据库里的存储过程?
1个回答
展开全部
仔细研究后在csdn上找到了解决该问题的办法帖出来给大家共享一下
大致方法是利用传递长字符串的形式向存储过程传递一个长字符串。由于sqlserver没有
splite函数
所以必须自己定义一个splite函数来进行处理
自定义一个函数
create
function
f_splitstr(@sourcesql
varchar(8000),@strseprate
varchar(10))
returns
@temp
table(f1
varchar(100))asbegindeclare
@i
int
set
@sourcesql=rtrim(ltrim(@sourcesql))
set
@i=charindex(@strseprate,@sourcesql)while
@i=1begininsert
@temp
values(left(@sourcesql,@i-1))
set
@sourcesql=substring(@sourcesql,@i+1,len(@sourcesql)-@i)
set
@i=charindex(@strseprate,@sourcesql)endif
@sourcesql<''
insert
@temp
values(@sourcesql)returnend-执行select
*
from
dbo.f_splitstr('1,2,3,4',',')
注:'1,2,3,4'即你所传递的字符串
同样你可以通过
select
cunt(*)
from
dbo.f_splitstr('1,2,3,4',',')
获得该字符串数组的长度
如果要删除该函数使用--删除函数drop
function
fsplit
大致方法是利用传递长字符串的形式向存储过程传递一个长字符串。由于sqlserver没有
splite函数
所以必须自己定义一个splite函数来进行处理
自定义一个函数
create
function
f_splitstr(@sourcesql
varchar(8000),@strseprate
varchar(10))
returns
@temp
table(f1
varchar(100))asbegindeclare
@i
int
set
@sourcesql=rtrim(ltrim(@sourcesql))
set
@i=charindex(@strseprate,@sourcesql)while
@i=1begininsert
@temp
values(left(@sourcesql,@i-1))
set
@sourcesql=substring(@sourcesql,@i+1,len(@sourcesql)-@i)
set
@i=charindex(@strseprate,@sourcesql)endif
@sourcesql<''
insert
@temp
values(@sourcesql)returnend-执行select
*
from
dbo.f_splitstr('1,2,3,4',',')
注:'1,2,3,4'即你所传递的字符串
同样你可以通过
select
cunt(*)
from
dbo.f_splitstr('1,2,3,4',',')
获得该字符串数组的长度
如果要删除该函数使用--删除函数drop
function
fsplit
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询