2014-01-25 23 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)