请问一个数据库中的实例有多个数据库,数据库可以相应对应不同的服务器不??

小孩快跑 2014-02-22 05:57:42
比如我的一个数据库实例下面有QPAccountsDB、QPGameMatchDB、QPGameScoreDB三个数据库,可以有QPAccountsDBLink服务器、QPGameMatchDBLink服务器、QPGameScoreDBLink服务器不,如果有,怎么样设置相应的服务器。还有存储过程被加锁了,怎么解开呢???


...全文
367 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
LongRui888 2014-02-23
  • 打赏
  • 举报
回复
引用 8 楼 Junior_yuan 的回复:
[quote=引用 7 楼 yupeigu 的回复:]
--建立链接服务器,通过@datasrc指定数据源,适合链接其他多种数据库
EXEC master.dbo.sp_addlinkedserver @server = N'QPAccountsDBLink',
@srvproduct='ms',
@provider=N'SQLNCLI',
@datasrc=N'远程ip地址,端口'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'QPAccountsDBLink',
@useself=N'False',
@locallogin=NULL,
@rmtuser=N'用户名',
@rmtpassword='密码'


--查询远程表
select *
from [QPAccountsDBLink].远程数据库名.dbo.表

[/code]


引用 7 楼 yupeigu 的回复:
[quote=引用 4 楼 Junior_yuan 的回复:]
[quote=引用 3 楼 yupeigu 的回复:]
QPAccountsDBLink服务器、QPGameMatchDBLink服务器、QPGameScoreDBLink服务器

你的意思是建立3个连接服务器吗,这个是可以的


是啊,怎么添加啊!因为我用别人的服务器人家的sql语句都是加服务器+数据库,比如QPAccountsDBLink.QPAccountsDB.dbo.AccountsInfo这样的获取一个表。

类似QPAccountsDBLink这样的东西有多个而且有的写在存储过程里,但是那个存储过程都加锁了[/quote]

建立连接服务器:

--建立链接服务器,通过@datasrc指定数据源,适合链接其他多种数据库
EXEC master.dbo.sp_addlinkedserver @server = N'QPAccountsDBLink',
@srvproduct='ms',
@provider=N'SQLNCLI',
@datasrc=N'远程ip地址,端口'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'QPAccountsDBLink',
@useself=N'False',
@locallogin=NULL,
@rmtuser=N'用户名',
@rmtpassword='密码'


--查询远程表
select *
from [QPAccountsDBLink].远程数据库名.dbo.表

[/quote]

大哥,你的答案是对的,还有三个小问题?
1.如果我不想用ip地址,因为我的就是本地啦,应该怎么写
2.用什么sql语句或者怎操作可以看到我实例已经有多少个服务器名了。
3.那个加密的存储过程真的没办法看到了吗??只能找人家要源码吗??[/quote]

1.如果你的实例,用的是默认的1433端口,那么可以不用ip,就直接用你的服务器名称

2.用这个查询有多少的服务器名称:
select *
from sys.servers


你看看这个图,可以直接看有多少连接服务器,可以删除,新建:


3、这个最好是找人要源代码。
小孩快跑 2014-02-23
  • 打赏
  • 举报
回复
引用 7 楼 yupeigu 的回复:
--建立链接服务器,通过@datasrc指定数据源,适合链接其他多种数据库 EXEC master.dbo.sp_addlinkedserver @server = N'QPAccountsDBLink', @srvproduct='ms', @provider=N'SQLNCLI', @datasrc=N'远程ip地址,端口' EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'QPAccountsDBLink', @useself=N'False', @locallogin=NULL, @rmtuser=N'用户名', @rmtpassword='密码' --查询远程表 select * from [QPAccountsDBLink].远程数据库名.dbo.表 [/code]
引用 7 楼 yupeigu 的回复:
[quote=引用 4 楼 Junior_yuan 的回复:] [quote=引用 3 楼 yupeigu 的回复:] QPAccountsDBLink服务器、QPGameMatchDBLink服务器、QPGameScoreDBLink服务器 你的意思是建立3个连接服务器吗,这个是可以的
是啊,怎么添加啊!因为我用别人的服务器人家的sql语句都是加服务器+数据库,比如QPAccountsDBLink.QPAccountsDB.dbo.AccountsInfo这样的获取一个表。 类似QPAccountsDBLink这样的东西有多个而且有的写在存储过程里,但是那个存储过程都加锁了[/quote] 建立连接服务器:

--建立链接服务器,通过@datasrc指定数据源,适合链接其他多种数据库
EXEC master.dbo.sp_addlinkedserver @server = N'QPAccountsDBLink',
                                   @srvproduct='ms', 
                                   @provider=N'SQLNCLI',                                    
                                   @datasrc=N'远程ip地址,端口'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'QPAccountsDBLink',
                                    @useself=N'False',
                                    @locallogin=NULL,
                                    @rmtuser=N'用户名',
                                    @rmtpassword='密码'
  
                                    
--查询远程表
select * 
from [QPAccountsDBLink].远程数据库名.dbo.表

[/quote] 大哥,你的答案是对的,还有三个小问题? 1.如果我不想用ip地址,因为我的就是本地啦,应该怎么写 2.用什么sql语句或者怎操作可以看到我实例已经有多少个服务器名了。 3.那个加密的存储过程真的没办法看到了吗??只能找人家要源码吗??
LongRui888 2014-02-23
  • 打赏
  • 举报
回复
引用 4 楼 Junior_yuan 的回复:
[quote=引用 3 楼 yupeigu 的回复:] QPAccountsDBLink服务器、QPGameMatchDBLink服务器、QPGameScoreDBLink服务器 你的意思是建立3个连接服务器吗,这个是可以的
是啊,怎么添加啊!因为我用别人的服务器人家的sql语句都是加服务器+数据库,比如QPAccountsDBLink.QPAccountsDB.dbo.AccountsInfo这样的获取一个表。 类似QPAccountsDBLink这样的东西有多个而且有的写在存储过程里,但是那个存储过程都加锁了[/quote] 建立连接服务器:

--建立链接服务器,通过@datasrc指定数据源,适合链接其他多种数据库
EXEC master.dbo.sp_addlinkedserver @server = N'QPAccountsDBLink',
                                   @srvproduct='ms', 
                                   @provider=N'SQLNCLI',                                    
                                   @datasrc=N'远程ip地址,端口'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'QPAccountsDBLink',
                                    @useself=N'False',
                                    @locallogin=NULL,
                                    @rmtuser=N'用户名',
                                    @rmtpassword='密码'
  
                                    
--查询远程表
select * 
from [QPAccountsDBLink].远程数据库名.dbo.表

LongRui888 2014-02-23
  • 打赏
  • 举报
回复
引用 5 楼 Junior_yuan 的回复:
[quote=引用 1 楼 DBA_Huangzj 的回复:] link server貌似是实例级别的,具体的库要独立授权,你三个库都在一个实例上的话一个link server就够了,当然搞3个也不抱错。 还有存储过程被加锁了,怎么解开呢??? 加锁是指解密?如果是,网上可能有一些手段,不过不保证能完全解密
就是他们打存储过程就加了一些加密代码, 例如: CREATE PROCEDURE [dbo].[usp_GetQueueOrder] @StaffId VARCHAR(36), @GroupId INT, @QueueNO INT WITH ENCRYPTION AS SELECT COUNT(1)+1 NewOrder FROM Tbl_Queue WHERE StaffId=@StaffId AND GroupId=@GroupId AND QueueNO<@QueueNO AND EndTime is null GO 这怎么解开啊??[/quote] 你想看到这个存储过程中的源码是把,这个好像没办法,你得问他们要源码。 我之前看到,如果是2000的系统,可以有代码能解密,可以获取源码的
小孩快跑 2014-02-23
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
link server貌似是实例级别的,具体的库要独立授权,你三个库都在一个实例上的话一个link server就够了,当然搞3个也不抱错。 还有存储过程被加锁了,怎么解开呢??? 加锁是指解密?如果是,网上可能有一些手段,不过不保证能完全解密
就是他们打存储过程就加了一些加密代码, 例如: CREATE PROCEDURE [dbo].[usp_GetQueueOrder] @StaffId VARCHAR(36), @GroupId INT, @QueueNO INT WITH ENCRYPTION AS SELECT COUNT(1)+1 NewOrder FROM Tbl_Queue WHERE StaffId=@StaffId AND GroupId=@GroupId AND QueueNO<@QueueNO AND EndTime is null GO 这怎么解开啊??
小孩快跑 2014-02-23
  • 打赏
  • 举报
回复
引用 3 楼 yupeigu 的回复:
QPAccountsDBLink服务器、QPGameMatchDBLink服务器、QPGameScoreDBLink服务器 你的意思是建立3个连接服务器吗,这个是可以的
是啊,怎么添加啊!因为我用别人的服务器人家的sql语句都是加服务器+数据库,比如QPAccountsDBLink.QPAccountsDB.dbo.AccountsInfo这样的获取一个表。 类似QPAccountsDBLink这样的东西有多个而且有的写在存储过程里,但是那个存储过程都加锁了
LongRui888 2014-02-22
  • 打赏
  • 举报
回复
QPAccountsDBLink服务器、QPGameMatchDBLink服务器、QPGameScoreDBLink服务器 你的意思是建立3个连接服务器吗,这个是可以的
LongRui888 2014-02-22
  • 打赏
  • 举报
回复
存储过程被加锁了 这个是怎么了
發糞塗牆 2014-02-22
  • 打赏
  • 举报
回复
link server貌似是实例级别的,具体的库要独立授权,你三个库都在一个实例上的话一个link server就够了,当然搞3个也不抱错。 还有存储过程被加锁了,怎么解开呢??? 加锁是指解密?如果是,网上可能有一些手段,不过不保证能完全解密

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧