我想将生产服务器中的数据插入到特定表的开发服务器中。
我正在使用insert into
SQL查询和标准名称。那就是我指定服务器名称,数据库名称,架构名称和表名称。
insert into ServerADev.[ING_DB].dbo.[Table1]
select *
from ServerAProd.[ING_DB].dbo.[Table1]
where ID = '08914'
ID
是表1中的列。
对于上述查询,我遇到了错误:
在sys.servers中找不到ServerAProd。验证是否指定了正确的服务器名称。如有必要,执行存储过程sp_addlinkedserver将服务器添加到sys.servers。
当我EXEC sp_addlinkedserver @server='ServerAProd'
时,我得到:
用户无权执行此操作。
我是否需要向DBA(数据库管理员)发出请求以授予执行此查询的权限?
答案 0 :(得分:1)
您需要设置linked server来查询外部服务器。 因此,要么:
ServerAProd
不是您命名的链接服务器或
sp_addlinkedserver
,或在对象资源管理器中浏览至“服务器对象”,然后在“链接服务器”上右键单击-> new。有关更多详细信息,请参见上面的链接。进行编辑...是的,这需要权限:
使用Transact-SQL语句时,需要对服务器具有ALTER ANY LINKED SERVER权限或setupadmin固定服务器角色的成员资格。使用Management Studio时,需要CONTROL SERVER权限或sysadmin固定服务器角色的成员身份。
答案 1 :(得分:0)
1。在生产服务器上为开发服务器创建链接服务器, 2.使用此openquery()插入数据,以便您可以非常快速地插入大数据。
插入OPENQUERY(devservername,'SELECT * FROM devservar_database..dev_server_table_name')
从production_table_database_name中选择*。.production_table_table_name