34,592
社区成员
发帖
与我相关
我的任务
分享
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
GO
CREATE TABLE t(
descript NVARCHAR(MAX)
)
GO
SET NOCOUNT ON
INSERT INTO t VALUES (N'修改stuffgodown_id列,原始值为:36,修改后为:37,')
INSERT INTO t VALUES (N'修改stuffgodown_id列,原始值为:16,修改后为:31,修改userinfo_id列,原始值为:591,修改后为52,')
GO
IF OBJECT_ID('Fun_GetValues') IS NOT NULL DROP FUNCTION Fun_GetValues
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION dbo.Fun_GetValues
(
@str NVARCHAR(MAX)
)
RETURNS
@t TABLE
(
v1 INT,
v2 INT
)
AS
BEGIN
DECLARE @idx1 INT,@idx2 INT,@tmp1 NVARCHAR(MAX),@tmp2 NVARCHAR(MAX)
SET @idx1=CHARINDEX(N'原始值为:',@str)
SET @idx2=CHARINDEX(N'修改后为:',@str)
IF @idx1>1
BEGIN
SET @tmp1=SUBSTRING(@str,@idx1+5,LEN(@str))
SET @tmp1=SUBSTRING(@tmp1,1,CHARINDEX(N',',@tmp1)-1)
END
IF @idx2>1
BEGIN
SET @tmp2=SUBSTRING(@str,@idx2+5,LEN(@str))
SET @tmp2=SUBSTRING(@tmp2,1,CHARINDEX(N',',@tmp2)-1)
END
INSERT INTO @t VALUES (@tmp1,@tmp2);
RETURN
END
GO
--query
SELECT * FROM t CROSS APPLY dbo.Fun_GetValues(t.descript) AS f