zoukankan      html  css  js  c++  java
  • 解决SQL Server里sp_helptext输出格式错行问题

    use Master
    go
    if object_id('SP_SQL') is not null
    	drop proc SP_SQL
    go
    /******************************************************************************************************************************************************
    
    整理人:中国风(Roy)
    
    日期:2008.01.01
    ******************************************************************************************************************************************************/
    create proc [dbo].[SP_SQL](@ObjectName sysname)
    as
    set nocount on ;
    declare @Print nvarchar(max)----@Print用nvarchar
    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'--指定對象
    
    
  • 相关阅读:
    删除难以删除的文件
    DLL创建与使用
    Springboot多文件上传
    解决javaweb项目启动端口号被占用
    pl/sql 导出数据库表dmp文件并导入数据库过程
    Spring Boot 静态资源处理
    Consider defining a bean of type错误
    SpringBoot+layUI上传图片功能
    jQuery改变html页面样式
    Springboot启动后默认访问页面修改
  • 原文地址:https://www.cnblogs.com/Roy_88/p/5463099.html
Copyright © 2011-2022 走看看