Düzeltme: bir bağlantılı sunucu kullanılıyorsa, SQL Server 2008 veya SQL Server 2005'te, BIR SELECT deyimi bir yanlış sonuç kümesi verir

Makale çevirileri Makale çevirileri
Makale numarası: 975417 - Bu makalenin geçerli olduğu ürünleri görün.
Microsoft, Microsoft SQL Server 2005 düzeltmeleri tek bir yüklenebilir dosya dağıtır. Düzeltmeleri birikimli olduğu için her yeni sürüm, tüm düzeltmeleri içerir ve sürüm önceki SQL Server 2005 ile birlikte verilen tüm güvenlik düzeltmelerini düzeltin.Microsoft, Microsoft SQL Server 2008'in düzeltmeleri tek bir yüklenebilir dosya dağıtır. Düzeltmeleri birikimli olduğu için her yeni sürüm, tüm düzeltmeleri içerir ve sürüm önceki SQL Server 2008'in içerdiği tüm güvenlik düzeltmelerini düzeltin.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Microsoft SQL Server 2005 veya Microsoft SQL Server 2008'de, bağlantılı bir sunucu, bir veri kaynağı olarak kullanan bir tablo içinde bir SELECT deyimi çalıştırın ve bir yanlış sonuç kümesi verilir.

Çözüm

SQL Server 2005 Service Pack 3

Bu sorunla ilgili düzeltme, SQL Server 2005 Service Pack 3 için toplu güncelleştirme 6 önce yayımlanmıştır. Bu toplu güncelleştirme paketi hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
974648SQL Server 2005 Service Pack 3 için toplu güncelleştirme paketine 6
Not Yap?lar birikimli olduğu için her yeni düzeltme yayımlanan tüm düzeltmeleri içerir ve sürüm önceki SQL Server 2005 ile birlikte verilen tüm güvenlik düzeltmelerini düzeltin. Microsoft, bu düzeltmeyi içeren en son düzeltme sürümü uygulama düşündüğünüz önerir. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
960598SQL Server 2005, SQL Server 2005 Service Pack 3 yayımlandıktan sonra yayımlanan oluşturur
Microsoft SQL Server 2005 düzeltmeleri için belirli bir SQL Server hizmet paketlerini oluşturulur. Bir SQL Server 2005 Service Pack 3 yüklemesi için SQL Server 2005 Service Pack 3'ü bir düzeltmeyi uygulamanız gerekir. Varsayılan olarak, sonraki SQL Server hizmet paketi ile bir SQL Server hizmet paketinde sağlanan herhangi bir düzeltme bulunmaktadır.

SQL Server 2008'in yayın sürümü

Önemli SQL Server 2008'in yayım sürümünü çalıştırıyorsanız, bu düzeltmeyi yüklemeniz gerekir.

Bu sorunla ilgili düzeltme, ilk toplu güncelleştirme 8'de yayımlanmıştır. SQL Server 2008 için bu toplu güncelleştirme paketini elde etme hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
975976SQL Server 2008 için güncelleştirme paketi 8
Not Yap?lar birikimli olduğu için her yeni düzeltme yayımlanan tüm düzeltmeleri içerir ve sürüm önceki SQL Server 2008'in içerdiği tüm güvenlik düzeltmelerini düzeltin. Bu düzeltmeyi içeren en son düzeltme sürümü uygulama ele almanızı öneririz. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
956909SQL Server 2008, SQL Server 2008'de yayımlandıktan sonra yayımlanan oluşturur

SQL Server 2008 Service Pack 1

Önemli SQL Server 2008 Service Pack 1'i çalıştırıyorsanız, bu düzeltmeyi yüklemeniz gerekir.

Bu sorunla ilgili düzeltme, önce SQL Server 2008 Service Pack 1 için toplu güncelleştirme 5'de yayımlanmıştır. Bu toplu güncelleştirme paketi hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
975977SQL Server 2008 Service Pack 1 için toplu güncelleştirme paketine 5
Not Yap?lar birikimli olduğu için her yeni düzeltme yayımlanan tüm düzeltmeleri içerir ve sürüm önceki SQL Server 2008'in içerdiği tüm güvenlik düzeltmelerini düzeltin. Microsoft, bu düzeltmeyi içeren en son düzeltme sürümü uygulama düşündüğünüz önerir. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
970365SQL Server 2008, SQL Server 2008 Service Pack 1'de yayımlandıktan sonra yayımlanan oluşturur
Microsoft SQL Server 2008'in, düzeltmeleri belirli SQL Server hizmet paketleri için oluşturulur. SQL Server 2008 Service Pack 1 yüklemesi için bir SQL Server 2008 Service Pack 1 düzeltme uygulamanız gerekir. Varsayılan olarak, sonraki SQL Server hizmet paketi ile bir SQL Server hizmet paketinde sağlanan herhangi bir düzeltme bulunmaktadır.

Durum

Microsoft, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bu sorunun olduğunu onaylamıştır.

Daha fazla bilgi

Sorunu Yeniden Oluşturma Adımları

The following sample statements can be used to reproduce this problem.
-- create sample database
--
create database test
go

use test
go

--
-- create sample table
--
if exists (select * from sys.objects where object_id = OBJECT_ID('T1'))
drop table T1

create table T1 (
ID int primary key, 
CODE_AB char(2) not null,
CATEGORY char(1) not null default ('0')
) 

if exists (select * from sys.objects where object_id = OBJECT_ID('M1'))
drop table M1

create table M1 (
CODE_AB char(2) primary key,
[NAME] varchar(20) not null 
) 

insert into T1 (ID, CODE_AB) values ( 1, '66') 
insert into T1 (ID, CODE_AB) values ( 2, '66') 
insert into T1 (ID, CODE_AB) values ( 3, '77')
insert into T1 (ID, CODE_AB) values ( 4, '55') 
insert into T1 (ID, CODE_AB) values ( 5, '88') 
insert into T1 (ID, CODE_AB) values ( 6, '88') 
insert into T1 (ID, CODE_AB) values ( 7, '77') 
insert into T1 (ID, CODE_AB) values ( 8, '66') 
insert into T1 (ID, CODE_AB) values ( 9, '77') 
insert into T1 (ID, CODE_AB) values ( 10, '66') 
insert into T1 (ID, CODE_AB) values ( 11, '66') 
insert into T1 (ID, CODE_AB) values ( 12, '88') 
insert into T1 (ID, CODE_AB) values ( 13, '88') 
insert into T1 (ID, CODE_AB) values ( 14, '88') 
insert into T1 (ID, CODE_AB) values ( 15, '22') 
insert into T1 (ID, CODE_AB) values ( 16, '88') 
insert into T1 (ID, CODE_AB) values ( 17, '88') 
insert into T1 (ID, CODE_AB) values ( 18, '88') 
insert into T1 (ID, CODE_AB) values ( 19, '44') 
insert into T1 (ID, CODE_AB) values ( 20, '88') 
insert into T1 (ID, CODE_AB) values ( 21, '66') 
insert into T1 (ID, CODE_AB) values ( 22, '66') 
insert into T1 (ID, CODE_AB) values ( 23, '77') 
insert into T1 (ID, CODE_AB) values ( 24, '77') 
insert into T1 (ID, CODE_AB) values ( 25, '77') 
insert into T1 (ID, CODE_AB) values ( 26, '66') 
insert into T1 (ID, CODE_AB) values ( 27, '66') 
insert into T1 (ID, CODE_AB) values ( 28, '66') 
insert into T1 (ID, CODE_AB) values ( 29, '44') 
insert into T1 (ID, CODE_AB) values ( 30, '77') 
insert into T1 (ID, CODE_AB) values ( 31, '44') 
insert into T1 (ID, CODE_AB) values ( 32, '66') 
insert into T1 (ID, CODE_AB) values ( 33, '88') 
insert into T1 (ID, CODE_AB) values ( 34, '88') 
insert into T1 (ID, CODE_AB) values ( 35, '66') 
insert into T1 (ID, CODE_AB) values ( 36, '66') 
insert into T1 (ID, CODE_AB) values ( 37, '77') 
insert into T1 (ID, CODE_AB) values ( 38, '77') 
insert into T1 (ID, CODE_AB) values ( 39, '77') 
insert into T1 (ID, CODE_AB) values ( 40, '44') 
insert into T1 (ID, CODE_AB) values ( 41, '77') 
insert into T1 (ID, CODE_AB) values ( 42, '77') 
insert into T1 (ID, CODE_AB) values ( 43, '66') 
insert into T1 (ID, CODE_AB) values ( 44, '66') 
insert into T1 (ID, CODE_AB) values ( 45, '77') 
insert into T1 (ID, CODE_AB) values ( 46, '44') 
insert into T1 (ID, CODE_AB) values ( 47, '66') 
insert into T1 (ID, CODE_AB) values ( 48, '66') 
insert into T1 (ID, CODE_AB) values ( 49, '66') 
insert into T1 (ID, CODE_AB) values ( 50, '88') 
insert into T1 (ID, CODE_AB) values ( 51, '66') 
insert into T1 (ID, CODE_AB) values ( 52, '44') 
insert into T1 (ID, CODE_AB) values ( 53, '88') 
insert into T1 (ID, CODE_AB) values ( 54, '88') 
insert into T1 (ID, CODE_AB) values ( 55, '88') 
insert into T1 (ID, CODE_AB) values ( 56, '88') 
insert into T1 (ID, CODE_AB) values ( 57, '22') 
insert into T1 (ID, CODE_AB) values ( 58, '88') 
insert into T1 (ID, CODE_AB) values ( 59, '11') 
insert into T1 (ID, CODE_AB) values ( 60, '11') 
insert into T1 (ID, CODE_AB) values ( 61, '11') 
insert into T1 (ID, CODE_AB) values ( 62, '88') 
insert into T1 (ID, CODE_AB) values ( 63, '77') 
insert into T1 (ID, CODE_AB) values ( 64, '77') 
insert into T1 (ID, CODE_AB) values ( 65, '66') 
insert into T1 (ID, CODE_AB) values ( 66, '77') 
insert into T1 (ID, CODE_AB) values ( 67, '77') 
insert into T1 (ID, CODE_AB) values ( 68, '77') 
insert into T1 (ID, CODE_AB) values ( 69, '33') 
insert into T1 (ID, CODE_AB) values ( 70, '33') 
insert into T1 (ID, CODE_AB) values ( 71, '66') 
insert into T1 (ID, CODE_AB) values ( 72, '66') 
insert into T1 (ID, CODE_AB) values ( 73, '66') 
insert into T1 (ID, CODE_AB) values ( 74, '11') 
insert into T1 (ID, CODE_AB) values ( 75, '77') 
insert into T1 (ID, CODE_AB) values ( 76, '11') 
insert into T1 (ID, CODE_AB) values ( 77, '66') 
insert into T1 (ID, CODE_AB) values ( 78, '66') 
insert into T1 (ID, CODE_AB) values ( 79, '66') 
insert into T1 (ID, CODE_AB) values ( 80, '66') 
insert into T1 (ID, CODE_AB) values ( 81, '66') 
insert into T1 (ID, CODE_AB) values ( 82, '66') 
insert into T1 (ID, CODE_AB) values ( 83, '66') 
insert into T1 (ID, CODE_AB) values ( 84, '66') 
insert into T1 (ID, CODE_AB) values ( 85, '66') 
insert into T1 (ID, CODE_AB) values ( 86, '66') 
insert into T1 (ID, CODE_AB) values ( 87, '77') 
insert into T1 (ID, CODE_AB) values ( 88, '77') 
insert into T1 (ID, CODE_AB) values ( 89, '66') 
insert into T1 (ID, CODE_AB) values ( 90, '11') 
insert into T1 (ID, CODE_AB) values ( 91, '88') 
insert into T1 (ID, CODE_AB) values ( 92, '88') 
insert into T1 (ID, CODE_AB) values ( 93, '44') 
insert into T1 (ID, CODE_AB) values ( 94, '66') 
insert into T1 (ID, CODE_AB) values ( 95, '77') 
insert into T1 (ID, CODE_AB) values ( 96, '44') 
insert into T1 (ID, CODE_AB) values ( 97, '77') 
insert into T1 (ID, CODE_AB) values ( 98, '77') 
insert into T1 (ID, CODE_AB) values ( 99, '88') 
insert into T1 (ID, CODE_AB) values (100, '88') 
insert into T1 (ID, CODE_AB) values (101, '88') 
insert into T1 (ID, CODE_AB) values (102, '77') 
insert into T1 (ID, CODE_AB) values (103, '66') 
insert into T1 (ID, CODE_AB) values (104, '77') 

insert into M1 values ('66', 'F') 
insert into M1 values ('77', 'G') 

if exists (select srv.name from sys.servers srv where srv.name = '127.0.0.1')
exec sp_dropserver @server = '127.0.0.1', @droplogins = 'droplogins'

exec sp_addlinkedserver @server = '127.0.0.1', @srvproduct = 'SQL Server'
exec sp_addlinkedsrvlogin @rmtsrvname = '127.0.0.1', @useself = 'True', @locallogin = NULL, @rmtuser = NULL, @rmtpassword = NULL

go

--
-- compare results. 
--

-- 1. select local tables. -> expect a correct result.
select *
from (

select 
ID,
CODE_AB,
CODE_A = case when CATEGORY = '0' then substring(T1.CODE_AB, 1, 1) end,
CODE_B = case when CATEGORY = '0' then substring(T1.CODE_AB, 2, 1) end,
CODE_NAME = case when CATEGORY = '0' then (
select
M1.CODE_AB + ' ' + M1.[NAME]
from M1 
where M1.CODE_AB = T1.CODE_AB
) end
from T1

) as TEMP
where CODE_A = '7' and CODE_B = '7'

-- 2. select tables via linked server. -> expect a wrong result.
select *
from (

select 
ID,
CODE_AB,
CODE_A = case when CATEGORY = '0' then substring(T1.CODE_AB, 1, 1) end,
CODE_B = case when CATEGORY = '0' then substring(T1.CODE_AB, 2, 1) end,
CODE_NAME = case when CATEGORY = '0' then (
select
M1.CODE_AB + ' ' + M1.[NAME]
from [127.0.0.1].test.dbo.M1 as M1 
where M1.CODE_AB = T1.CODE_AB
) end
from [127.0.0.1].test.dbo.T1 as T1

) as TEMP
where CODE_A = '7' and CODE_B = '7' 
--order by CODE_AB -- if we use this the correct result will return.
go

--
-- drop linked server, drop sample database.
--
/*
if exists (select srv.name from sys.servers srv where srv.name = '127.0.0.1')
exec sp_dropserver @server = '127.0.0.1', @droplogins = 'droplogins'

use master
go
if exists (select * from sys.databases where name = 'TEST')
drop database test
*/

Referanslar

SQL Server için artımlı hizmet modeli hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
935897SQL Server ekibinden bildirilen sorunlar için düzeltmeler ulaştırmak için artımlı bir hizmet modeli kullanılabilir
Daha fazla bilgi için SQL Server 2005 Service Pack 3'ü edinmek için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
913089En son SQL Server 2005 hizmet paketi nasıl elde edilir
SQL Server 2005 Service Pack 3 (SP3) yeni özellikler hakkında ve SQL Server 2005 SP3'ndeki geliştirmeler hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://go.microsoft.com/fwlink/?LinkId=131442
SQL Server güncelleştirmelerinin adlandırma şeması hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
822499Microsoft SQL Server yazılım güncelleştirme paketlerinin yeni adlandırma şeması
Yazılım güncelleştirme terminolojisi hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
824684Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması

Özellikler

Makale numarası: 975417 - Last Review: 19 Ekim 2009 Pazartesi - Gözden geçirme: 1.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Anahtar Kelimeler: 
kbmt kbexpertiseadvanced kbsurveynew kbqfe kbfix KB975417 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:975417

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com