如果mssql 2008中已存在,则用户名增加1

时间:2013-03-28 04:55:25

标签: sql-server sql-server-2008

Create table  TEMP_USER
( 
USERNAME  nvarchar(50) ,
ID  int,
Phone nvarchar(30)
);

如果temp_user中已存在用户名,则在通过SP插入时应该按1进行。 示例:RAM .Narayan如果有人试图再次插入ram.narayan它应该插入ram.narayan1下次当任何人试图插入ram.narayan它应该插入ram.narayan2 ..如何在MSSQL 2008中这样做

1 个答案:

答案 0 :(得分:1)

尝试类似下面的内容(未经测试,但它应该给你一个良好的开端)。它假定变量@username@id@phone已经声明或作为参数传递。

DECLARE @curr_uname nvarchar(50) = @username
DECLARE @i INT = 0

WHILE EXISTS (SELECT 1 FROM TEMP_USER WHERE USERNAME = @curr_uname)
BEGIN
    SET @i += 1
    SET @curr_uname = @username + CAST(@i AS NVARCHAR(7))
END

INSERT INTO TEMP_USER (USERNAME, ID, Phone)
VALUES (@curr_uname, @id, @phone)