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'--指定對象
    
    
  • 相关阅读:
    【杭电ACM】1.2.4 Financial Management
    【杭电ACM】1.2.1 Biker's Trip Odometer
    【杭电ACM】1097 A hard puzzle
    【西交ACM】100 A+B problem
    【杭电ACM】1.2.2 Climbing Worm
    【杭电ACM】1004 Let the Balloon Rise
    【杭电ACM】1.2.3 hide handkerchief
    【杭电ACM】1.2.5 find your present (2)
    【杭电ACM】1.2.6 decimal system
    【西交ACM】298 第N大的数
  • 原文地址:https://www.cnblogs.com/Roy_88/p/5463099.html
Copyright © 2011-2022 走看看