Share via


En son değişiklikleri SQL Server 2012 veritabanı altyapısı özellikleri

Bu konu en son değişiklikleri açıklar SQL Server 2012 Veritabanı Altyapısıve önceki sürümlerinde SQL Server. Bu değişiklikler, uygulamalar, komut dosyaları veya daha önceki sürümleri üzerinde temel işlevleri bozabilir SQL Server. Yükseltme sırasında bu sorunlarla karşılaşabilirsiniz. Daha fazla bilgi için, bkz. Yükseltmelere Hazırlanmak için Yükseltme Danışmanı'nı Kullanın.

Bu Konuda

SQL Server'da 2012 değişiklikleri kesiliyor

SQL Server 2008 ve SQL Server 2008R2 içinde değişiklikleri kesiliyor

SQL Server'da 2005 değişiklikleri kesiliyor

Değişiklikleri kesiliyorSQL Server 2012

Transact-SQL

Özellik

Açıklama

Sütun veya adlı tabloları seçmeNEXT

Dizileri sonraki değeri için ANSI standart işlevini kullanın. Bir tablo veya sütun ise NEXTve tablo veya sütun takma ad olarak VALUE, ANSI standart as belirtilmemişse, sonuç deyimi hata neden olabilir. Geçici bir çözüm bulmak için ANSI dahil standart anahtar kelime olarak. Örneğin, SELECT NEXT VALUE FROM Tableolarak yeniden yazılması SELECT NEXT AS VALUE FROM Tableve SELECT Col1 FROM NEXT VALUEolarak yeniden yazılması SELECT Col1 FROM NEXT AS VALUE.

PIVOT işlecini

Veritabanı uyumluluk düzeyi için 110 ayarlandığında PIVOT işlecini özyinelemeli ortak tablo ifade (cte) sorgu içinde izin verilmez. 100 Ya da daha düşük uyumluluk düzeyini değiştirmek veya sorguyu yeniden yazın. Tek bir satır başına gruplandırma fazla olduğunda özyinelemeli cte sorguda PIVOT kullanarak hatalı sonuçlar üretir.

sp_setapprole ve sp_unsetapprole

Çerez OUTPUTparametresi sp_setapproleŞu anda olarak belgelenen varbinary(8000)doğru en fazla uzunluk olan. Ancak geçerli uygulama döndürür varbinary(50). Uygulamalar devam ayrılacak varbinary(8000)böylece çerez boyutu artar bir sürümde dönerseniz düzgün çalışması uygulama devam ediyor. Daha fazla bilgi için, bkz. sp_setapprole (Transact-sql).

EXECUTE AS

execute as çerez çıkış parametresi olarak belgelenen varbinary(8000)doğru en fazla uzunluk olan. Ancak geçerli uygulama döndürür varbinary(100). Uygulamalar devam ayrılacak varbinary(8000)böylece çerez boyutu artar bir sürümde dönerseniz düzgün çalışması uygulama devam ediyor. Daha fazla bilgi için, bkz. execute (Transact-sql).

sys.fn_get_audit_file işlevi

İki ek sütunlar (user_defined_event_id ve user_defined_information) kullanıcı tanımlı denetim olayları desteklemek üzere eklenmiştir. Sütun adı tarafından seçmeyin uygulamaları, beklenenden daha fazla sütun döndürebilir. Sütun adını seçin ya da uygulamayı kabul Bu ek sütunlar ayarlayın.

İÇİNDE ayrılmış bir anahtar sözcük

İÇİNDE ayrılmış bir anahtar sözcük artık. Nesneleri veya 'içinde' adlı sütun başvuruları başarısız olur. Nesne veya sütun adını yeniden adlandırmak veya adı köşeli ayraçlar veya tırnak işaretleri kullanarak sınırlandırmak. Örneğin, SELECT * FROM [within].

cast ve convert işlemleri hesaplanan sütun türü timeveyadatetime2

Önceki sürümlerinde SQL Server, cast ve convert işlemleri için varsayılan stili timeve datetime2veri türleri ise iki tür hesaplanmış bir sütun ifadesinde kullanıldığında dışında 121. Hesaplanan sütunlarda, varsayılan stil 0'dır. Bu davranış, oluşturulduklarında, otomatik parametreleştirmenin olduğu sorgularda veya kısıtlama tanımlarında kullanıldıklarında hesaplanan sütunları etkiler.

Uyumluluk düzeyi 110 kapsamında, time ve datetime2 veri türlerinin CAST ve CONVERT işlemlerinin varsayılan stili her zaman 121'dir. Sorgunuz eski davranışı varsayıyorsa, 110'dan daha düşük bir uyumluluk düzeyi kullanın veya etkilenen sorguda 0 stilini açıkça belirtin.

Veritabanını uyumluluk düzeyi 110'a yükseltmek, diske depolanan kullanıcı verilerini değiştirmez. Bu verileri el ile gerektiği gibi düzeltmelisiniz. Örneğin, yukarıda betimlendiği gibi bir hesaplanan sütun ifadesi içeren bir kaynakta bir tablo oluşturmak için SELECT INTO kullandıysanız, hesaplanan sütun tanımının kendisi yerine (stil 0'ı kullanan) veriler depolanır. Stil 121 ile eşleşmesi için bu verileri el ile güncelleştirmeniz gerekir.

ALTER TABLE

ALTER TABLE deyimi yalnızca iki parçalı (şema.nesne) tablo adlarına izin verir. Şimdi aşağıdaki biçimleri kullanarak bir tablo adı belirterek, derleme zamanı hatası 117 ile başarısız olur.

  • sunucu.veritabanı.şema.tablo

  • .veritabanı.şema.tablo

  • ..şema.tablo

Önceki sürümlerde, sunucu.veritabanı.şema.tablo biçimini belirtmek 4902 hatasını döndürüyordu. .veritabanı.şema.tablo veya ..şema.tablo biçimini belirtmek başarılı oluyordu.

Sorunu çözmek için, 4 parçalı öneki kaldırın.

Meta veri tarama

GÖZATMAK veya set no_browsetable on şimdi istimal görünüm sorgulama görünümü, değil alttaki nesne meta meta veri döndürür. Bu davranış, şimdi meta tarama diğer yöntemleri eşleşir.

SOUNDEX

Veritabanı uyumluluk düzeyi altında 110, soundex işlev önceki Uyumluluk düzeyleri altında hesaplanan değerlerden farklı işlevi tarafından hesaplanan değerleri neden olabilecek yeni kurallar uygular. Uyumluluk düzeyi 110 yükselttikten sonra dizinler, yığınlar, yeniden veya check kısıtlamaları soundex işlevini kullanan gerekebilir. Daha fazla bilgi için, bkz. soundex (Transact-sql).

Satır sayısı iletisi başarısız dml deyimleri

De SQL Server 2012, Veritabanı AltyapısıRowCount tds bitmiş belirteciyle sürekli olarak gönderecektir: dml deyimi hata verdiğinde istemcilerine 0. Önceki sürümlerinde SQL Server, dml deyimi başarısız bir try-catch bloğu içinde yer alan ve her iki autoparameterized tarafından -1 yanlış değerini istemciye gönderilir Veritabanı Altyapısıya da try-catch bloğu başarısız ifadesi olarak aynı düzeyde değildir. Örneğin, bir try-catch bloğu saklı yordam çağrıları ve dml deyimini yordamı başarısız olursa, istemci yanlış-1 değerini alırsınız.

Bu yanlış davranış kullanan uygulamalar başarısız olur.

serverproperty ('baskı')

Örneği sürümü yüklü ürün SQL Server 2012. Bu özelliğin değeri, özellikleri ve maksimum yüklü ürün tarafından desteklenen CPU sayısı gibi sınırlamalar belirlemek için kullanın.

Yüklü Enterprise edition tabanlı, bu 'Enterprise Edition' döndürebilir veya ' Enterprise Edition: çekirdek tabanlı lisans '. Enterprise sürümleri maksimum hesaplama kapasitesine bağlı tek bir örneği farklılaşmış SQL Server. Compute kapasite sınırları hakkında daha fazla bilgi SQL Server 2012bakın Kapasite sınırlarını SQL Server sürümü tarafından hesaplaması.

Dinamik yönetim görünümleri

Görünüm

Açıklama

sys.dm_exec_requests

Komut sütunu değiştirir nvarchar(16)için nvarchar(32).

sys.dm_os_memory_cache_counters

Aşağıdaki sütunları yeniden adlandırılmıştır.

Önceki sütun adıYeni sütun adı
single_pages_kbpages_kb
multi_pages_kbpages_in_use_kb

sys.dm_os_memory_cache_entries

Sütun pages_allocated_countsütun değiştirildi pages_kb.

sys.dm_os_memory_clerks

Sütun multi_pages_in_use_kbkaldırıldı.

Sütun single_pages_kbsütun değiştirildi pages_kb.

sys.dm_os_memory_nodes

Aşağıdaki sütunları yeniden adlandırılmıştır.

Önceki sütun adıYeni sütun adı
single_pages_kbpages_kb
multi_pages_kbforeign_committed_kb

sys.dm_os_memory_objects

Aşağıdaki sütunları yeniden adlandırılmıştır.

Önceki sütun adıYeni sütun adı
pages_allocated_countpages_in_bytes
max_pages_allocated_countmax_pages_in_bytes

sys.dm_os_sys_info

Aşağıdaki sütunları yeniden adlandırılmıştır.

Önceki sütun adıYeni sütun adı
physical_memory_in_bytesphysical_memory_kb
bpool_commit_targetcommitted_target_kb
bpool_visiblevisible_target_kb
virtual_memory_in_bytesvirtual_memory_kb
bpool_commitedcommitted_kb

sys.dm_os_workers

Yerel sütun kaldırıldı.

Katalog görünümleri

Görünüm

Açıklama

sys.data_spaces

sys.partition_schemes

filegroup_namesys.filegroups

sys.partition_functions

Yeni bir sütun, is_system, sys.data_spaces ve sys.partition_functions eklendi. (sys.partition_schemes ve filegroup_namesys.filegroups sys.data_spaces sütunları devralır.)

Bu sütunda 1 değeri, nesnenin tam metin dizini parçaları için kullanıldığını gösterir.

Sys.partition_functions, sys.partition_schemes ve filegroup_namesys.filegroups, yeni bir sütun son sütun değil. Bu katalog görünümlerinden döndürülen sütunlar sırasına dayanan varolan sorguları gözden geçirebilirsiniz.

sql clr veri türü (geometri, Coğrafya ve hierarchyid)

Derleme Microsoft.SqlServer.Types.dll, kayma veri türleri ve hierarchyid türü içeren yükseltilmiş sürüm 10.0 sürümü 11.0. Aşağıdaki koşullar doğru olduğunda bu derleme başvurusu özel uygulamalar başarısız olabilir.

  • Taşıdığınızda özel bir uygulama bir bilgisayar üzerinde SQL Server 2008 R2olan yalnızca bir bilgisayara yüklendiği SQL Server 2012ise yüklü uygulama başarısız olacaktır, çünkü 10.0 başvurulan sürümü SqlTypes derleme mevcut değil. Bu hata iletisini alabilirsiniz:“Could not load file or assembly 'Microsoft.SqlServer.Types, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.”

  • Başvuru yaptığınızda SqlTypes derleme sürümü 11.0 ve sürüm 10.0 da yüklü, bu hata iletisini alabilirsiniz:“System.InvalidCastException: Unable to cast object of type 'Microsoft.SqlServer.Types.SqlGeometry' to type 'Microsoft.SqlServer.Types.SqlGeometry'.”

  • Başvuru yaptığınızda SqlTypes derleme sürümü 11.0 hedefleyen özel bir uygulama.net 3.5, 4 ya da 4.5, SqlClient tasarım derleme 10.0 sürümü yükler için uygulama başarısız olur. Uygulama aşağıdaki yöntemlerden birini aradığında bu hata oluşur:

    • GetValueyöntemi SqlDataReadersınıfı

    • GetValuesyöntemi SqlDataReadersınıfı

    • köşeli, dizin operator [] SqlDataReadersınıfı

    • ExecuteScalaryöntemi SqlCommandsınıfı

Aşağıdaki yöntemlerden birini kullanarak bu soruna geçici çözüm bulabilirsiniz:

  • Arayarak kodunuzda bu sorunu çözmek GetSqlBytesyöntemi, Get yöntemleri yerine clr almak için yukarıda listelenen SQL Serversistem türleri, aşağıdaki örnekte gösterildiği gibi:

    string query = "SELECT [SpatialColumn] FROM [SpatialTable]";
          using (SqlConnection conn = new SqlConnection("..."))
          {
                SqlCommand cmd = new SqlCommand(query, conn);
    
                conn.Open();
                SqlDataReader reader = cmd.ExecuteReader();
    
                while (reader.Read())
                {
                      // In version 11.0 only
                      SqlGeometry g = 
    SqlGeometry.Deserialize(reader.GetSqlBytes(0));
    
                      // In version 10.0 or 11.0
                      SqlGeometry g2 = new SqlGeometry();
                      g.Read(new BinaryReader(reader.GetSqlBytes(0).Stream));
                }
          }
    
    string query = "SELECT [SpatialColumn] FROM [SpatialTable]";
          using (SqlConnection conn = new SqlConnection("..."))
          {
                SqlCommand cmd = new SqlCommand(query, conn);
    
                conn.Open();
                SqlDataReader reader = cmd.ExecuteReader();
    
                while (reader.Read())
                {
                      // In version 11.0 only
                      SqlGeometry g = 
    SqlGeometry.Deserialize(reader.GetSqlBytes(0));
    
                      // In version 10.0 or 11.0
                      SqlGeometry g2 = new SqlGeometry();
                      g.Read(new BinaryReader(reader.GetSqlBytes(0).Stream));
                }
          }
    
  • Size bu sorunu uygulama yapılandırma dosyasında, Kurul yeniden yönlendirme kullanarak aşağıdaki örnekte gösterildiği gibi çalışabilirsiniz:

    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        ...
        <dependentAssembly>
            <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
            <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" />
        </dependentAssembly>
        ...
    </assemblyBinding>
    
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        ...
        <dependentAssembly>
            <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
            <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" />
        </dependentAssembly>
        ...
    </assemblyBinding>
    
  • "SQL Server 2012" değeri belirterek bu soruna geçici bir çözüm için bağlantı dizesinde çalışabilirsiniz "Type System Version için" SqlClient derleme 11.0 sürümü yüklemeye zorlamak için özniteliği. Bu bağlantı dizesi özniteliği, yalnızca kullanılabilir.net 4,5 ve üzeri.

awe desteği

32-bit Adres Pencereleme Uzantıları (awe) destek kesilir. Bu 32-bit işletim sistemlerinde daha yavaş performans sonuçlanabilir. Büyük miktarlarda bellek kullanarak yüklemeleri için 64-bit bir işletim sistemine geçirmek.

XQuery işlevler vekil-farkında

XQuery işlevler ve işleçler için W3C önerisi onları yüksek aralığı Unicode karakter kodlama utf-16 tek bir simge olarak temsil eden bir yedek çifti saymak gerekir. Ancak sürümlerinde SQL Serverönce SQL Server 2012, dize işlevlerinin değil tanımak vekil çiftleri tek bir karakter olarak. Dize uzunluğu hesaplamaları ve alt dize ayıklamaları – gibi bazı dize işlemleri – yanlış sonuç döndürdü. SQL Server 2012Şimdi tam utf-16 ve vekil çiftleri doğru işlenmesini destekler.

xml veri türü olarak SQL Serveryalnızca doğru biçimlendirilmiş vekil çiftleri verir. XQuery işlevler dize değerleri olarak geçersiz ya da kısmi vekil çiftleri geçmek mümkün olduğundan ancak bazı işlevleri hala tanımlanmamış veya beklenmeyen sonuçlar bazı durumlarda dönebilirsiniz. Dize değerleri XQuery kullanarak oluşturmak için aşağıdaki yöntemleri deneyin SQL Server:

  • Sabit dize değeri, ikili değer sağlar. Bu yöntemi kullanırken, geçersiz ya da kısmi vekil çiftleri aktarmak mümkün kalır.

  • Sabit dize değeri, karakter varlıkları sağlayarak sağlar. Bu yöntemi kullanırken, geçersiz vekil çiftleri geçmek mümkün değildir. XQuery işlevler, üst düzey karakteri için bir tek karakter varlığı gerekir. Vekil çifti karakterleri karakter varlıkları verdiyse bu işlevlerin bir hata yükseltmek.

  • İthalat Dış değerlerini kullanarak sql:column ya sql:variable. Bu yöntemi kullanırken, geçersiz ya da kısmi vekil çiftleri tanıtmak mümkün kalır.

Etkilenen XQuery işlevler ve işleçler

Şimdi aşağıdaki XQuery işlevler ve işleçler utf-16 temsilci çiftleri doğru içinde ele SQL Server 2012:

  • FN:String-uzunluk. Ancak, argüman olarak, davranışını geçersiz ya da kısmi yedek çifti aktarılırsa dize uzunluğu tanımsızdır.

  • FN:substring.

  • FN: içeren. Ancak, eğer bir kısmi yedek çifti bir değer olarak, geçmiş içeren daha iyi biçimlendirilmiş yedek çifti içinde bulunan kısmi yedek çifti gelebilir çünkü beklenmeyen sonuçlar döndürebilir.

  • FN:concat. Ancak, eğer bir kısmi yedek çifti bir değer olarak, geçmiş concat yanlış temsilci çiftleri veya kısmi vekil çiftleri üretebilir.

  • Karşılaştırma işleçleri ve tarafindan tümcesi. Comparison operators include +, <, >, <=, >=, eq, lt, gt, le, and ge.

Dağıtılmış sorgu sistem yordam çağrıları

Dağıtılmış sorgu aramaları ile OPENQUERYbazı sistem yordamları biri çağrıldığında başarısız olur SQL Server 2012başka bir sunucuya. Bu durumda ne zaman Veritabanı Altyapısıkeşif meta veri yordamı olamaz. Örneğin, SELECT * FROM OPENQUERY(..., 'EXEC xp_loginfo').

Geriye dönük uyumluluk

Yeni davranış uyumluluk düzeyine bağlıdır

Aşağıdaki işlevler ve işleçler yalnızca Uyumluluk düzeyi 110 olduğunda yukarıda açıklanan veya daha yüksek yeni bir davranış gösterilmektedir:

  • FN: içeren.

  • FN:concat.

  • Karşılaştırma işleçleri ve tarafindan yan tümcesi

Yeni davranış varsayılan ad alanı URI işlevleri bağlıdır

Aşağıdaki işlevler sadece aşağıdaki durumlarda varsayılan ad alanı URI ad alanında son önerisi, yani karşılık açıklanan yeni davranış göstermek http://www.w3.org/2005/xpath-functions. Uyumluluk düzeyi 110 veya daha yüksek olduğunda varsayılan sonra SQL Server 2012Bu ad alanına varsayılan işlev ad bağlar. Ancak uyumluluk düzeyi ne olursa olsun bu ad kullanıldığında bu işlevler yeni davranışı göstermektedir.

  • FN:String-uzunluk.

  • FN:substring

Başa Dön bağlantısıyla kullanılan ok simgesiBaşa dön

SQL Server 2008 ve SQL Server 2008R2 içinde değişiklikleri kesiliyor

Bu bölümde sunulan en son değişiklikleri içeren SQL Server 2008. Herhangi bir değişiklik olarak kullanılmaya başlanan SQL Server 2008 R2.

Alfabe

Özellik

Açıklama

Yeni alfabe

SQL Server 2008Windows Server 2008 tarafından sağlanan alfabe ile tam uyum içinde olan yeni alfabe tanıttı. Bu 80 yeni alfabe dilsel doğruluk düzeldi ve tarafından belirtilir * _100 sürümü başvuruları. Sunucu veya veritabanı için yeni bir harmanlama seçin, harmanlama eski istemci sürücülerine sahip istemciler tarafından tanınmıyor unutmayın. Tanınmayan alfabe uygulamanın hata döndürür ve başarısız olmasına neden olabilir. Aşağıdaki çözümleri deneyin:

  • Temel sistem alfabe güncelleştirilmesi istemci işletim sistemini yükseltin.

  • Müşteri veritabanı istemci yazılımı yüklü varsa, veritabanı istemci yazılımı bir hizmet güncelleştirmesi uygulamak düşünün.

  • İstemci kod sayfası için varolan bir harmanlama seçin.

Ortak dil çalışma zamanı (clr)

Özellik

Açıklama

clr birleştirmeler

Ne zaman bir veritabanı yükseltilmiş için SQL Server 2008, Microsoft.SqlServer.TypesYeni veri türlerini desteklemek için derleme otomatik olarak yüklenir. Yükseltme Danışmanı kuralları, kullanıcı türü veya montajları ile Çakışan adlar bulmak. Yükseltme Danışmanı'nı, çakışan herhangi bir montaj ve çelişen her türlü yeniden adlandırma yeniden adlandırmayı veya önceden varolan kullanıcı türü için başvurmak için kodu Şemaiki bölümü adları kullanarak bildirecektir.

Veritabanı yükseltme çakışan bir ada sahip bir kullanıcı derleme algılarsa, bunu otomatik olarak bu birleştirmeyi yeniden adlandırmak ve şüpheli moduna veritabanı.

Çakışan ada sahip bir kullanıcı türü yükseltme sırasında varsa, hiçbir özel adımlar alınır. Yükseltmeden sonra eski kullanıcı türünü hem yeni sistem türü yer alır. Kullanıcı türü yalnızca iki bölüm adları yoluyla kullanılabilir.

clr birleştirmeler

SQL Server 2008yükler.net Framework 3.5 SP1, kütüphaneler genel derleme önbelleği (gac) de güncelleştirir. Eğer kayıtlı kitaplıklar desteklenmeyen bir SQL Serververitabanı, senin SQL Serveruygulama için yükselttikten sonra çalışmamaya başlayabilir SQL Server 2008. Çünkü hizmet veya gac kitaplıklarda yükseltme değil güncelleştirmek derlemelerin içinde SQL Server. Derleme her ikisi de varsa, bir SQL Serververitabanı ve GAC'de iki bol-in derleme tam olarak eşleşmelidir. Onlar eşleşmiyorsa, meclis tarafından kullanıldığında bir hata oluşacaktır SQL Serverclr tümleştirme. Daha fazla bilgi için, bkz. Desteklenen.net Framework kitaplıkları.

Veritabanı yükseltme yaptıktan sonra servis veya derleme kopyasını yükseltmek, SQL Serververitabanlarında alter assembly deyimi ile. Daha fazla bilgi için bkz: Bilgi Bankası makalesi 949080.

Desteklenmeyen kullanıyorsanız olup olmadığını tespit etmek.net framework kitaplığı uygulamanızdaki veritabanınızdaki aşağıdaki sorguyu çalıştırın.

SELECT name FROM sys.assemblies WHERE clr_name LIKE '%publickeytoken=b03f5f7f11d50a3a,%';
SELECT name FROM sys.assemblies WHERE clr_name LIKE '%publickeytoken=b03f5f7f11d50a3a,%';

clr yordamları

clr kullanıcı tanımlı işlevler, kullanıcı tanımlı toplamları veya kullanıcı tanımlı türler (UDTs) içinde kimliğe bürünme kullanılarak uygulamanız için yükseltme yaptıktan sonra hata 6522 başarısız olmasına neden olabilir SQL Server 2008.

Aşağıdaki senaryolar başarılı SQL Server 2005ama başarısız olmasına SQL Server 2008. Kararlar, her senaryo için sağlanmıştır.

  1. Bir clr kullanıcı tanımlı işlevi, kullanıcı tanımlı toplama veya kimliğe bürünme kullanan udt yöntemi bir parametre türü olan nvarchar(max), varchar(max), varbinary(max), ntext, text, image, ya da büyük bir udt ve yok DataAccessKind.Read özniteliği yöntemi.

    Bu sorunu gidermek için ekleme DataAccessKind.Read özniteliği yöntemi, yeniden derleme ve yordamı ve derleme re-deploy.

  2. Olan bir clr tablo değerli işlev bir Init kimliğe bürünme gerçekleştiren yöntemi.

    Eklemek bu sorunu çözmek için DataAccessKind.Read özniteliği yöntemi, yeniden derleme ve yordamı ve derleme re-deploy.

  3. Olan bir clr tablo değerli işlev bir FillRow kimliğe bürünme gerçekleştiren yöntemi.

    Bu sorunu gidermek için kimliğe bürünme gelen kaldırma FillRow yöntemi. Dış kaynak kullanarak giriş FillRow yöntemi. Bunun yerine, dış kaynaklara erişim Init yöntemi.

Dinamik yönetim görünümleri

Görünüm

Açıklama

sys.dm_os_sys_info

Kaldırılan cpu_ticks_in_msve sqlserver_start_time_cpu_tickssütun.

sys.dm_exec_query_resource_semaphores sys.dm_exec_query_memory_grants

resource_semaphore_idSütun değil benzersiz bir kimliği olduğunu SQL Server 2008. Bu değişiklik, sorun giderme sorgu yürütme etkileyebilir. Daha fazla bilgi için, bkz. sys.dm_exec_query_resource_semaphores (Transact-sql).

Hataları ve olayları

Özellik

Açıklama

Oturum açma hataları

De SQL Server 2005, yalnızca Windows kimlik doğrulama kullanmak üzere yapılandırılmış bir sunucuya bağlanmak için sql oturum açma kullanıldığında hata 18452 geri döndü. De SQL Server 2008, hata 18456 yerine döndü.

Showplan

Özellik

Açıklama

Showplan xml şeması

Yeni SeekPredicateNew öğesi eklenir Showplan xml şeması ve kapsayan xsd sırası (SqlPredicatesType) metne dönüştürülecek bir <xsd:choice > Madde. Bir veya daha fazla yerine SeekPredicate öğeleri, bir veya daha fazla SeekPredicateNew öğeleri şimdi Showplan xml biçiminde görünebilir. İki unsur birbirini dışlar. SeekPredicate Showplan xml şeması geriye uyumluluk; tutulur Ancak, sorgu planları oluşturulan SQL Server 2008içerebilir SeekPredicateNew öğesi. Sadece almak için beklemek uygulamaları SeekPredicate , çocuk ShowPlanXML/BatchSequence/toplu/ifadeler/StmtSimple/QueryPlan/RelOp/IndexScan/SeekPredicates düğüm başarısız olabilir SeekPredicate öğesi yok. Ya da beklemek için uygulamayı yeniden SeekPredicate ya SeekPredicateNew bu düğümü öğesi. Daha fazla bilgi için, bkz. .

Showplan xml şeması

Yeni IndexKind özniteliği için eklendi NesneTürü karmaşık tür Showplan xml şeması. Kesinlikle doğrulama uygulamaları SQL Serverplan-e karşı SQL Server 2005şema başarısız olur.

Transact-SQL

Özellik

Açıklama

ALTER_AUTHORIZATION_DATABASE ddl olay

De SQL Server 2005, zaman ALTER_AUTHORIZATION_DATABASE ddl olay yangınlar, değer 'nesne' iade NesneTürü güvenilir veri tanım dili (ddl) işlemi de varlık türü bir nesne olduğunda bu olay eventdata xml öğesi. De SQL Server 2008, (örneğin, 'Tablo' veya 'function') gerçek bir tür döndürdü.

DÖNÜŞTÜRME

Geçersiz bir stil için çevir fonksiyonunu aktarılırsa, Dönüşüm türü karakter ya da karakter ikili ikili bir hata döndürülür. Önceki sürümlerinde SQL Server, geçersiz stil ikili karakter ve karakter ikili dönüşümleri için varsayılan stili ayarlanır.

grant/reddetme/revoke yürütme üzerinde birleştirmeler

execute izni can't verilen, reddedildi veya derlemeler için iptal edildi. Bu izin, herhangi bir etkisi yoktur ve şimdi bir hata neden olur. Vermek, reddetme veya saklı yordamlar veya derleme yöntemi yerine başvuru işlevler execute izni iptal.

grant/reddetme/revoke izinler sistem türleri

İzinleri can't verilen, reddedildi veya sistem türleri için iptal edildi. Önceki sürümlerinde SQL Server, bu ifadeler başarılı, ancak hiçbir etkisi. De SQL Server 2008, bir hata döndürdü.

GÖRE GRUPLANDIR

group by yan tümcesi alt sorgu için Grup listesi tarafından kullanılan bir deyim bulunamaz. Önceki sürümlerinde SQL Server, bu izin verildi. De SQL Server 2008, döndürülen hata 144.

Örneğin, aşağıdaki kod SQL Server 2005'te başarılı ve SQL Server 2008'de başarısız.

DECLARE @Test TABLE(a int NOT NULL);
INSERT INTO @Test SELECT 1 union ALL SELECT 2;
SELECT COUNT(*) 
FROM @Test
GROUP BY CASE WHEN a IN (SELECT t.a FROM @Test AS t)
THEN 1 ELSE 0 
END;
DECLARE @Test TABLE(a int NOT NULL);
INSERT INTO @Test SELECT 1 union ALL SELECT 2;
SELECT COUNT(*) 
FROM @Test
GROUP BY CASE WHEN a IN (SELECT t.a FROM @Test AS t)
THEN 1 ELSE 0 
END;

output yan tümcesi

Bu sütuna aşağıdaki yöntemlerden birini kullanarak tanımlandığında nondeterministic davranışı engellemek için output yan tümcesi bir sütun bir görünüm veya satır içi tablo değerli işlev başvuru yapamazsınız:

  • Alt sorgu.

  • Kullanıcı veya sistem veri erişimi gerçekleştiren ya da böyle yapmak için kabul edilir bir kullanıcı tanımlı işlevi.

  • Kullanıcı veya sistem veri erişimi gerçekleştiren kullanıcı tanımlı bir işlev, tanımında içeren bir hesaplanan sütun.

Ne zaman SQL Serverböyle bir sütunu algılar output yan tümcesinde hata 4186 oluşturulur. Daha fazla bilgi için, bkz. MSSQLSERVER_4186.

output INTO yan

output INTO yan hedef tablosu, tüm etkin tetikleyiciler olamaz.

precompute rankSunucu düzeyinde seçeneği

Bu seçenek desteklenmez SQL Server 2008. Şu anda en kısa zamanda bu özelliği kullanan uygulamalar değiştirin.

readpast tablo ipucu

Anlık yalıtım altında readpast İpucu belirtemezsiniz.

READ_COMMITED_SNAPSHOT veya ALLOW_SNAPSHOT_ISOLATION veritabanı seçeneği on olarak ayarlandığında readpast İpucu sayılır. Ancak readpast İpucu READCOMMITTEDLOCK ile birleştirirseniz, readpast davranışı engelleme READCOMMITTED İpucu ile aynıdır.

sp_helpuser

Sonuç döndürdü aşağıdaki sütun adları kümesini, sp_helpusersaklı yordam değişti.

Önceki sütun adıYeni sütun adı
GroupNameRoleName
Group_nameRole_name
Group_idRole_id
Users_in_groupUsers_in_role

Saydam veri şifrelemesi

Saydam veri şifrelemesi (tde) I/O düzeyinde gerçekleştirilir: sayfa yapısı belleğe şifresiz ve yalnızca sayfa yazıldığında şifreli disk. Günlük dosyası ve veritabanı dosya şifreli. Normal atlayan üçüncü taraf uygulamaları SQL Servermekanizma (örneğin, veri veya günlük dosyaları doğrudan tarama tarafından), sayfalarına erişmek için veritabanı tde kullandığında veri dosyaları şifreli olduğu için başarısız olur. Bu tür uygulamalar dışında verilerin şifresini çözmek için bir çözüm geliştirmek için pencere şifreleme API yararlanabilirim SQL Server.

XQuery

Özellik

Açıklama

DateTime desteği

De SQL Server 2005, veri türlerini xs:time, xs:date, ve xs:dateTimedilimimi destek yok. Dilimimi veri için utc diliminin eşleştirilir. SQL Server 2008, standart uyumlu davranış, aşağıdaki değişiklikler sonucu sağlar:

  • Değerleri olmadan dilimimi doğrulanır.

  • Sağlanan diliminin ya da bir dilimimi yokluğunda korunur.

  • Dahili depolama gösterimi değiştirilir.

  • Depolanan değerleri çözünürlüğü artar.

  • Negatif yıllık izin verilmez.

Uygulamalar ve XQuery ifadeler yeni türü değerlerini hesaba değiştirin.

XQuery ve Xpath deyimleri

De SQL Server 2005, noktayla başlayan bir XQuery veya XPath ifade adımları (': ') izin. Örneğin, aşağıdaki deyim adı test içerir ( CTR02) Noktayla başlayan yol ifadesi içinde.

SELECT FileContext.query('for n$ in //CTR return <C>{data )(n$/:CTR02)} </C>) AS Files FROM dbo.MyTable;
SELECT FileContext.query('for n$ in //CTR return <C>{data )(n$/:CTR02)} </C>) AS Files FROM dbo.MyTable;

De SQL Server 2008, xml standartlarına uymuyor çünkü bu kullanım verilmedi. Hata 9341 döndürülür. Önde gelen kolon çıkarmak ya da adı test--Örneğin, (n$ / CTR02) için bir önek belirtin veya (n$ / p1:CTR02).

Bağlanma

Özellik

Açıklama

Bağlanırken SQL Serveryerel istemci ssl kullanarak

İle bağlanırken SQL ServerNative Client, kullanan uygulamalar "sunucu kısa; = force ENCRYPTION = true " rahat doğrulama nedeniyle geçmişte olan konuların tam nitelikli etki alanı adlarıdır (fqdn)'ın belirtmek sertifika ile bağlı. SQL Server 2008 R2, fqdn özneler sertifikaları için zorlayarak güvenliğini artırır. Rahat doğrulama kullanan uygulamalar aşağıdaki eylemlerden birini gerçekleştirmeniz gerekir:

  • fqdn, bağlantı dizesini kullanın.

    • Bu seçenek, bağlantı dizesi sunucu anahtar uygulama dışında yapılandırılmışsa, uygulama yeniden gerektirmez.

    • Bu seçenek, kendi bağlantı dizeleri kodlanmış olan uygulamalar için çalışmaz.

    • Bu seçenek veritabanı yansıtma yansıtma sunucu yanıtı basit bir adla yana kullanan uygulamalar çalışmaz.

  • Kısa fqdn için eşlemek için bir diğer ad ekleyin.

    • Bu seçenek, hatta kendi bağlantı dizeleri kodlanmış olan uygulamalar için kullanılabilir.

    • Bu seçenek sağlayıcıları için alınan yerine çalışma ortağı adı takma adları aramak yok çünkü veritabanı yansıtma kullanan uygulamalar çalışmaz.

  • Kısa için verilen bir sertifikaya sahip.

    • Bu seçenek, tüm uygulamalar için kullanılabilir.

Başa Dön bağlantısıyla kullanılan ok simgesiBaşa dön

SQL Server'da 2005 değişiklikleri kesiliyor

Tanıtılan değişiklikleri sonu listesi için SQL Server 2005bakın SQL Server 2005 veritabanı altyapısı özellikleri değişiklikleri kırılma.

Ayrıca bkz.

Başvuru

SQL Server 2012 kaldırılmış veritabanı altyapısı özellikleri

SQL Server 2012 veritabanı altyapısı özellikleri davranışı değişiklikleri

SQL Server 2012'deki Discontinued Database Engine işlevsellik

alter database uyumluluk düzeyi (Transact-sql)

Diğer Kaynaklar

SQL Server veritabanı altyapısı geriye dönük uyumluluk