简体   繁体   中英

using regex in microsoft sql server management studio

I have a table in which I copy the data based on an condition and I insert it into the same table with a different ID .As follows:

SET IDENTITY_INSERT Table ON
 INSERT INTO Table (ID,GroupID,Name,link,etc..)
SELECT 
(SELECT MAX(ID) FROM Table) + ROW_NUMBER()OVER (ORDER BY ID),
     10500,
     Name,
     link    
FROM Table
WHERE GroupID =10400
SET IDENTITY_INSERT Table OFF

this gives me the following table

**ID    | GroupID  | Link**
3       | 10400    |/testsDatas/10400/Uploads
4       | 10500    |/testsDatas/10400/Uploads  //this is a new entry that the above query will enter.

The question I have is when the above query copies a row how can I change /testsDatas/10400/ to /testsDatas/10500/ ?

so that it looks like the following

**ID        | GroupID  | Link**
    3       | 10400    |/testsDatas/10400/Uploads
    4       | 10500    |/testsDatas/10500/Uploads  //desired output

there is mulitple rows of data,with more columns that I did not add.How do I achieve this?

Would using REPLACE work for you? A simple example:]

DECLARE @table TABLE ( ID INT, name VARCHAR(50), link VARCHAR(50) )

INSERT INTO @table
VALUES
    ( 3, '10400', '/testsDatas/10400/Uploads' )

INSERT INTO @table
SELECT
    (
    SELECT MAX(ID) 
    FROM @table
    ) + ROW_NUMBER() OVER (ORDER BY ID),
    10500,
    REPLACE( link, name, 10500 )
FROM @table


SELECT *
FROM @table

My results:

结果

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM