博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
转载 解决SQL Server里sp_helptext输出格式错行问题
阅读量:5020 次
发布时间:2019-06-12

本文共 2260 字,大约阅读时间需要 7 分钟。

转载自

 

在开发环境中常遇到更改存储过程、函数、视图等对象,解决SQL Server2005里sp_helptext输出格式错行问题。

 

use
 Master  
go
  
if
 
object_id
(
'
SP_SQL
'
is
 
not
 
null
  
  
drop
 
proc
 SP_SQL  
go
  
ExpandedBlockStart.gifContractedBlock.gif
/**/
/******************************************************************************************************************************************************  
整理人:中国风(Roy)  
日期:2008.01.01  
*****************************************************************************************************************************************************
*/
  
create
 
proc
 
[
dbo
]
.
[
SP_SQL
]
(
@ObjectName
 sysname)  
as
  
set
 nocount 
on
 ;  
declare
 
@Print
 
varchar
(
max
)  
if
 
exists
(
select
 
1
 
from
 syscomments  
where
 ID
=
object_id
(
@ObjectName
and
 encrypted
=
1
)  
  
begin
  
       
Print
 N
'
對象已加密!
'
  
       
return
  
  
end
  
if
 
coalesce
(
object_id
(
@ObjectName
,N
'
P
'
),
object_id
(
@ObjectName
,N
'
FN
'
),
object_id
(
@ObjectName
,N
'
IF
'
),
object_id
(
@ObjectName
,N
'
TF
'
),
object_id
(
@ObjectName
,N
'
TR
'
),
object_id
(
@ObjectName
,N
'
V
'
)) 
is
  
null
  
  
begin
  
      
Print
 N
'
對象只針對函數、存儲過程、觸發器、視圖!
'
  
      
return
   
  
end
  
print
 
'
Use 
'
+
db_Name
()  
print
 
'
Go
'
  
print
 
'
if object_ID(
'
+
quotename
(
case
 
when
 
charindex
(
'
]
'
,
@ObjectName
)
=
0
 
then
 
'
[
'
+
replace
(
rtrim
(
@ObjectName
),
'
.
'
,
'
].[
'
)
+
'
]
'
 
else
 
@ObjectName
 
end
 ,
''''
)
+
'
) is not null
'
  
print
 
char
(
9
)
+
'
Drop 
'
+
case
  
when
 
object_id
(
@ObjectName
,N
'
P
'
is
 
not
 
null
 
then
 
'
Procedure 
'
 
when
 
Coalesce
(
object_id
(
@ObjectName
,N
'
FN
'
),
object_id
(
@ObjectName
,N
'
IF
'
),
object_id
(
@ObjectName
,N
'
TF
'
)) 
is
 
not
 
null
 
then
 
'
Function 
'
 
when
 
object_id
(
@ObjectName
,N
'
TR
'
is
 
not
 
null
 
then
 
'
Trigger 
'
 
else
 
'
View 
'
end
 
+
case
 
when
 
charindex
(
'
]
'
,
@ObjectName
)
=
0
 
then
 
'
[
'
+
replace
(
rtrim
(
@ObjectName
),
'
.
'
,
'
].[
'
)
+
'
]
'
 
else
 
@ObjectName
 
end
  
Print
 
'
Go
'
  
declare
 
@T
 
table
(Col 
nvarchar
(
max
))  
insert
 
@T
 
select
 object_definition(
object_id
(
@ObjectName
)) 
--
+char(13)+char(10)  
while
 (
select
 
max
(Col) 
from
 
@T
)
>
''
  
  
begin
  
      
select
 
top
 
1
 
@Print
=left
(Col,
charindex
(
char
(
13
)
+
char
(
10
),Col)
-
1
from
 
@T
  
      
print
 
@Print
  
      
update
 
@T
 
set
 Col
=
stuff
(Col,
1
,
charindex
(
char
(
13
)
+
char
(
10
),Col)
+
1
,
''
)  
  
end
  
print
 
'
Go
'
  
go
  
調用方法:  
use
 test
--
指定所屬數據庫  
exec
 sp_sql 
'
sp_sql
'
--
指定對象 

 

转载于:https://www.cnblogs.com/aspsmile/articles/1273631.html

你可能感兴趣的文章
[Qt] this application failed to start because it could not find or load the Qt platform plugin
查看>>
Git Submodule管理项目子模块
查看>>
学会和同事相处的30原则
查看>>
NOJ——1568走走走走走啊走(超级入门DP)
查看>>
文件操作
查看>>
Python:GUI之tkinter学习笔记3事件绑定(转载自https://www.cnblogs.com/progor/p/8505599.html)...
查看>>
jquery基本选择器
查看>>
hdu 1010 dfs搜索
查看>>
搭建wamp环境,数据库基础知识
查看>>
android中DatePicker和TimePicker的使用
查看>>
SpringMVC源码剖析(四)- DispatcherServlet请求转发的实现
查看>>
Android中获取应用程序(包)的大小-----PackageManager的使用(二)
查看>>
Codeforces Gym 100513M M. Variable Shadowing 暴力
查看>>
浅谈 Mybatis中的 ${ } 和 #{ }的区别
查看>>
CNN 笔记
查看>>
版本更新
查看>>
SQL 单引号转义
查看>>
start
查看>>
实现手机扫描二维码页面登录,类似web微信-第三篇,手机客户端
查看>>
PHP socket客户端长连接
查看>>