Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 将行从一个表复制到另一个表,并建立多对多关系_Sql Server 2008_Tsql - Fatal编程技术网

Sql server 2008 将行从一个表复制到另一个表,并建立多对多关系

Sql server 2008 将行从一个表复制到另一个表,并建立多对多关系,sql-server-2008,tsql,Sql Server 2008,Tsql,示例表(我不与用户打交道,这只是一个示例) 如何使用管理员指定的一个角色从“导入者”复制到“用户” 附言。 我看到了这一点,但这在这种情况下没有帮助。假设ID是用户中的一个标识,并且管理员角色存在于角色中,并且没有现有用户,比如 insert into users( name ) select name from ImportUsers insert into UsersToRoles ( UserID, RoleID ) select users.id , role.id from u

示例表(我不与用户打交道,这只是一个示例)

如何使用管理员指定的一个角色从“导入者”复制到“用户”

附言。
我看到了这一点,但这在这种情况下没有帮助。

假设ID是用户中的一个标识,并且管理员角色存在于角色中,并且没有现有用户,比如

insert into users( name ) 
select name from ImportUsers

insert into UsersToRoles ( UserID, RoleID ) 
select users.id , role.id 
from users, roles
where role.name = 'admin'
您的表和数据

create table ImportUsers (Name varchar(15))
create table Users (Id int identity(1,1), name varchar(15))
create table Roles (Id int identity(1,1), title varchar(15))
create table UsersToRoles(UserId int, RoleId int)

insert roles values('Admin')

insert ImportUsers values('Thomas')
插入数据的脚本

create table #t(id int)

--merge to ensure names will remain unique(I am assuming that is a requirement)
;MERGE INTO Users t1 
using ImportUsers t2 on t1.name = t2.name
when not matched then INSERT (Name)   
VALUES( t2.Name ) 
OUTPUT Inserted.id
INTO #t;

insert UsersToRoles (UserId, RoleId )
select t.id, r.id from #t t
join roles r
on r.Title = 'Admin'

drop table #t
--consider: delete from ImportUsers

你能用SSIS吗?这是最好的处理方法。你能发布一些样本数据吗?如果导入器中只有
Name
,您希望如何/哪些信息插入到其他表中?@Radu Gheorghiu就这么简单-只有Name@ThiagoCustodio-我可以用代码来称呼它吗?@yytg是的,
create table #t(id int)

--merge to ensure names will remain unique(I am assuming that is a requirement)
;MERGE INTO Users t1 
using ImportUsers t2 on t1.name = t2.name
when not matched then INSERT (Name)   
VALUES( t2.Name ) 
OUTPUT Inserted.id
INTO #t;

insert UsersToRoles (UserId, RoleId )
select t.id, r.id from #t t
join roles r
on r.Title = 'Admin'

drop table #t
--consider: delete from ImportUsers