SQL server 2012 SP_HELPTEXT extra lines issue

前端 未结 8 1819
生来不讨喜
生来不讨喜 2020-12-31 01:33

I am using SQL server 2012, & always use SP_HELPTEXT to get my previously created Stored Procedures, In previous versions of SQL server there were no issues

8条回答
  •  旧巷少年郎
    2020-12-31 01:59

    A better workaround (compared to use Results to text) in my opinion is to create an sp_helptext2 storedproc as explained here:

    http://sql-javier-villegas.blogspot.com/2012/08/a-workaround-for-sphelptext-bug-in-ssms.html

    Note: that solution has a bug leaving out the last line if there is no new line at the end. Corrected T-SQL:

    CREATE PROCEDURE [dbo].[sp_helptext2] (@ProcName NVARCHAR(256))
    AS
    BEGIN
      DECLARE @PROC_TABLE TABLE (X1  NVARCHAR(MAX))
    
      DECLARE @Proc NVARCHAR(MAX)
      DECLARE @Procedure NVARCHAR(MAX)
      DECLARE @ProcLines TABLE (PLID INT IDENTITY(1,1), Line NVARCHAR(MAX))
    
      SELECT @Procedure = 'SELECT DEFINITION FROM '+db_name()+'.SYS.SQL_MODULES WHERE OBJECT_ID = OBJECT_ID('''+@ProcName+''')'
    
      insert into @PROC_TABLE (X1)
            exec  (@Procedure)
    
      SELECT @Proc=X1 from @PROC_TABLE
    
      WHILE CHARINDEX(CHAR(13)+CHAR(10),@Proc) > 0
      BEGIN
            INSERT @ProcLines
            SELECT LEFT(@Proc,CHARINDEX(CHAR(13)+CHAR(10),@Proc)-1)
            SELECT @Proc = SUBSTRING(@Proc,CHARINDEX(CHAR(13)+CHAR(10),@Proc)+2,LEN(@Proc))
      END
      --* inserts last line
      insert @ProcLines 
      select @Proc ;
    
      SELECT Line FROM @ProcLines ORDER BY PLID
    END
    

提交回复
热议问题