2016-03-21 98 views
0

我有一个Procedure和Linked服务器的问题。 (简单的方案就是在图像显示)enter image description here存储过程未找到链接的服务器

而且我选择这作品就好(它选择距离城市考纳斯“所有的学生):

SELECT * FROM myserver.dbo.student 
    WHERE student.cityid = 
(SELECT [id] FROM [LinkedServer].[Database].[dbo].[city] 
    WHERE [name]='Kaunas') 

现在我试图使存储过程,可以以城市为参数,选择来自城市的学生。

CREATE PROCEDURE StudentByCity 
    -- parameters 
    @CityName varchar = 'Kaunas' 
AS 
BEGIN 
     SET NOCOUNT ON; 
     SELECT * FROM myserver.dbo.student 
     WHERE student.cityid = 
      (SELECT [id] FROM [LinkedServer].[Database].[dbo].[city] 
      WHERE [name][email protected]) 
END 
GO 

但是,正在执行的程序返回空白选择。

+0

格式为[Linkedserver] [数据库] [DBO]。[城市] –

+0

它被格式化了吧。我错误地输入了StackOverflow。将解决它。 – NeuTronas

+0

空的结果表示没有匹配的数据,*不*表示查询无法找到服务器。如果它不能,你会得到一个错误 –

回答

3
@CityName varchar = 'Kaunas' 

您是否缺少参数@CityName varchar size?尝试

@CityName varchar(25) = 'Kaunas' 
+0

谢谢,这工作。 – NeuTronas

相关问题