2014-01-25 24 views
-1

我有一个用户列表,其角色分配给项目,我想将用户角色复制到新用户。使用T-sql复制角色

约翰是分配给多个项目具有不同级别角色的用户,我想通过创建一个新用户的亨利约翰配置文件复制。

sqlfiddle我的表的例子。

因此,最终的结果应该是

EMP_ID USERNAME Role PROJECT 
--------------------------------------------  
5  Henry   Admin Test1 
5  Henry   superuser Test2 
+0

我当然希望这不是你的实际'[网友] '表。因为它最好是一个'[user-project-roles]'表或者一个'[user-projects]'表。 – RBarryYoung

+0

是的,没有看到你的表定义的主键。这绝对没有正常化。除其他问题之外,哪些合乎逻辑的尝试将会对其进行破坏。 – RBarryYoung

回答

1

您可以在2种方式,其是实现结果:

` 
CREATE TABLE #users 
([Emp_ID] int, [username] varchar(255), [Role] varchar(255) 
    , [Project] varchar(255)) 
; 

    INSERT INTO #users 
([Emp_ID], [username], [Role],[Project]) 
    VALUES 
    (1,'John','Admin','Test1'), 
    (2,'Tim','user','Test3'), 
    (3,'Jack','user','Test4'), 
    (4,'John','superuser','Test2'); 
Select * from #users 

INSERT INTO #users 
([Emp_ID], [username], [Role],[Project]) 
Select 5,'Henry', Role, Project 
from #Users where Emp_ID in (1,4) 

or 
Select 5,'Henry', Role, Project 
from #Users where Username='John' 
` 
2

假设您已经分配了不同Emp_IDs约翰在你的榜样错误,如下我会写;

INSERT INTO users 
SELECT 5, 'Henry', Role, Project 
FROM Users 
WHERE Emp_ID = 1 -- John's Emp_ID 

- 如果不是一个错误

WHERE Emp_ID IN (1,4)