34,590
社区成员
发帖
与我相关
我的任务
分享
DECLARE @vSP_Definition VARCHAR(max)
SET @vSP_Definition='--wert '+CHAR(10)+'sdfs/**********************'+CHAR(10)+'*************erer**/ --ewrRTRewr '+CHAR(10)+'--EDFSDF '
+CHAR(10)+'--EREWR '
PRINT @vSP_Definition
PRINT CHAR(10)+'----------------RESULT--------------------------'
SET @vSP_Definition=global.[gf_sys_REG_REPLACE] (@vSP_Definition,N'(\/\*((?!\B(\/\*|\*\/)\B)[\s\S])*?\*\/)',CHAR(10),0) +CHAR(10)
--PRINT @vSP_Definition
print global.[gf_sys_REG_REPLACE] (@vSP_Definition,'--.*'+CHAR(10),N'',0) +CHAR(10)
DECLARE @vSP_Definition VARCHAR(max)
SELECT
--replace(DEFINITION, '''', '''''') AS SP_Definition,
@vSP_Definition= DEFINITION
FROM SYS.SQL_MODULES SM
JOIN SYS.OBJECTS SO
ON SO.OBJECT_ID = SM.OBJECT_ID
WHERE SO.TYPE = 'P' AND OBJECT_NAME(SM.OBJECT_ID) LIKE 'gp_sec_mvp_Values'
--PRINT @vSP_Definition
PRINT CHAR(10)+'----------------RESULT--------------------------'
SET @vSP_Definition=global.[gf_sys_REG_REPLACE] (@vSP_Definition,N'(\/\*((?!\B(\/\*|\*\/)\B)[\s\S])*?\*\/)',CHAR(10),0) +CHAR(10)
PRINT @vSP_Definition --这里正常应该要有输出,但是没有。
print global.[gf_sys_REG_REPLACE] (@vSP_Definition,'--.*'+CHAR(10),N'',0) +CHAR(10)
/****** Object: UserDefinedFunction [global].[gf_sys_REG_REPLACE] Script Date: 03/10/2014 15:05:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [global].[gf_sys_REG_REPLACE] (@SourceStr NVARCHAR(MAX),--
@pattern NVARCHAR(255),--pattern
@replacestr NVARCHAR(255),--replaced by
@IgnoreCase INT = 0 --Character Case,default ingore
)
RETURNS NVARCHAR(MAx) --
AS
BEGIN
--Select global.[gf_sys_REG_REPLACE] (N'sadfaf/*rfere8*/',N'sa',N'',0)
/* Function Name : [gf_sys_REG_REPLACE]
*
* Description: user Regular Expression to Replace the text
*
* Parameters:
*
* Return values:
*
* Examples:
*
*
* Revision history:
*/
DECLARE @hr integer
DECLARE @objRegExp integer
DECLARE @result varchar(5000)
EXECUTE @hr = sp_OACreate 'VBScript.RegExp', @objRegExp OUTPUT
IF @hr <> 0 BEGIN
EXEC @hr = sp_OADestroy @objRegExp
RETURN NULL
END
EXECUTE @hr = sp_OASetProperty @objRegExp, 'Pattern', @pattern
IF @hr <> 0 BEGIN
EXEC @hr = sp_OADestroy @objRegExp
RETURN NULL
END
EXECUTE @hr = sp_OASetProperty @objRegExp, 'Global', 1
IF @hr <> 0 BEGIN
EXEC @hr = sp_OADestroy @objRegExp
RETURN NULL
END
EXECUTE @hr = sp_OASetProperty @objRegExp, 'IgnoreCase', @ignoreCase
IF @hr <> 0 BEGIN
EXEC @hr = sp_OADestroy @objRegExp
RETURN NULL
END
EXECUTE @hr = sp_OAMethod @objRegExp, 'Replace', @result OUTPUT, @SourceStr, @replacestr
IF @hr <> 0 BEGIN
EXEC @hr = sp_OADestroy @objRegExp
RETURN NULL
END
EXECUTE @hr = sp_OADestroy @objRegExp
IF @hr <> 0 BEGIN
RETURN NULL
END
RETURN @result
END
GO
DECLARE @vSP_Definition VARCHAR(max)
SELECT
--replace(DEFINITION, '''', '''''') AS SP_Definition,
@vSP_Definition= DEFINITION
FROM SYS.SQL_MODULES SM
JOIN SYS.OBJECTS SO
ON SO.OBJECT_ID = SM.OBJECT_ID
WHERE SO.TYPE = 'P'
--应该是楼主下的条件有问题了,我注释掉了就有结果出现了
--AND OBJECT_NAME(SM.OBJECT_ID) LIKE '%gp_sec_mvp_Values%'
--PRINT @vSP_Definition
PRINT CHAR(10)+'----------------RESULT--------------------------'
SET @vSP_Definition=dbo.[gf_sys_REG_REPLACE] (@vSP_Definition,N'(\/\*((?!\B(\/\*|\*\/)\B)[\s\S])*?\*\/)',CHAR(10),0) +CHAR(10)
PRINT @vSP_Definition
--应该是楼主下的条件有问题了,我注释掉了就有结果出现了
/*
----------------RESULT--------------------------
CREATE PROCEDURE Pr_MoveFile
(
@DirID int,
@ParentID int
)
AS
DECLARE @Index int
SET @Index = (SELECT ParentID FROM Directory WHERE DirID = @DirID)
UPDATE Directory SET FileCount = FileCount - 1 WHERE DirID = @Index
UPDATE Directory SET FileCount = FileCount + 1 WHERE DirID = @ParentID
UPDATE Directory SET ParentID = @ParentID WHERE DirID = @DirID
*/
--请问楼主单查询这个有返回值吗?
SELECT DEFINITION
FROM SYS.SQL_MODULES SM
JOIN SYS.OBJECTS SO
ON SO.OBJECT_ID = SM.OBJECT_ID
WHERE SO.TYPE = 'P' AND OBJECT_NAME(SM.OBJECT_ID) LIKE '%gp_sec_mvp_Values%'