Aracılığıyla paylaş


SQL projeleri özellikleri

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

SQL veritabanı projeleri, tek tek .sql dosyaların içeriğine ek olarak projenin davranışını ve veritabanı düzeyi ayarlarını tanımlayan özellikler içerir. Bu özellikler .sqlproj dosyasında depolanır ve doğrudan .sqlproj dosyasını düzenleyerek ayarlanabilir. Visual Studio ve VS Code gibi bazı SQL projeleri araçları, proje özelliklerinin birkaçını veya birçoğunun grafik kullanıcı arabiriminde düzenlenmesine erişim sağlar. Bu makalede, SQL veritabanı projeleri için ayarlayabileceğiniz özelliklere genel bir bakış sağlanır.

Yaygın olarak kullanılan SQL projeleri özellikleri şunlardır:

Veritabanı seçenekleri değişikliklerini devre dışı bırakma

SQL projesi yayını sırasında, veritabanı seçeneklerine yapılan değişiklikler, proje özelliklerinde tanımlanan değerlere ve varsayılan proje değerlerine göre betiklenir. Veritabanı seçeneklerinin yayımlama sırasında değiştirilmesini önlemek için SqlPackage CLI veya Visual Studio gibi bir araç kullanarak publish özelliğini false olarak ScriptDatabaseOptions ayarlayın. Bu ayar bir yayımlama profiline de eklenebilir.

Ortak proje özellikleri

Hedef platform özelliği, projenin hedeflediğini SQL Server sürümünü belirtir. DSP özelliği, SQL projesi için hedef platformu ayarlamak için kullanılır. Hedef platform hakkında daha fazla bilgiyi hedef platform makalesinde bulabilirsiniz.

Kod analizi, geliştirme yaşam döngüsünün başlarında olası sorunları yakalayarak sürekli tümleştirme ve dağıtım sürecini önemli ölçüde geliştirebilir. SQL kod analizi makalesinde kod analizini etkinleştirme ve özel kurallar ekleme hakkında daha fazla bilgi edinin.

Veri katmanı uygulama özellikleri

SQL projesi oluşturulduğunda oluşturulan veri katmanı uygulamasını (DAC) tanımlamak için aşağıdaki özellikler kullanılır.

  • DacApplicationName: Veri katmanı uygulamasının .dacpacadı. Varsayılan değer proje adıdır.
  • DacDescription: Veri katmanı uygulamasının .dacpacisteğe bağlı bir açıklaması.
  • DacVersion: Veri katmanı uygulamasının .dacpacsürümü. Varsayılan değer şudur: 1.0.0.0.

Varsayılan şema

özelliği SQL DefaultSchema projesi için varsayılan şemayı ayarlar. Bu özellik, 1 bölümlü adlandırılmış nesneler için geçerlidir. Varsayılan değer şudur: dbo.

T-SQL uyarıları

SuppressTSqlWarnings ve TreatTSqlWarningsAsErrors özellikleri, proje derlemesi sırasında T-SQL uyarılarının nasıl işleneceğini denetler. SuppressTSqlWarnings özelliği, proje derlemesi sırasında virgülle ayrılmış hata numaraları listesi olarak belirtilen T-SQL uyarılarını gizler.

TreatTSqlWarningsAsErrors özelliği T-SQL uyarılarını hata olarak ele alır ve T-SQL uyarılarının derlemede başarısız olmasına neden olur. TreatTSqlWarningsAsErrors için varsayılan değer Falsedeğeridir.

Proje özelliklerinin örnek kullanımı

Aşağıdaki örnek, bir SQL proje dosyasında CompatibilityMode, IsChangeTrackingOn ve TreatTSqlWarningsAsErrors özelliklerinin nasıl ayarlanacağını göstermektedir. CompatibilityMode özelliği 130 olarak ayarlanır, IsChangeTrackingOn özelliği True olarak ayarlanır ve TreatTSqlWarningsAsErrors özelliği True olarak ayarlanır. TreatSqlWarningsAsErrors özelliği yalnızca True derleme yapılandırmasında Release olarak ayarlanır.

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build">
  <Sdk Name="Microsoft.Build.Sql" Version="1.0.0-rc1" />
  <PropertyGroup>
    <Name>AdventureWorks</Name>
    <DSP>Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider</DSP>
    <ModelCollation>1033, CI</ModelCollation>
    <ProjectGuid>{00000000-0000-0000-0000-000000000000}</ProjectGuid>
    <RunSqlCodeAnalysis>true</RunSqlCodeAnalysis>
    <CompatibilityMode>130</CompatibilityMode>
    <IsChangeTrackingOn>True</IsChangeTrackingOn>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)'=='Release'">
    <TreatTSqlWarningsAsErrors>True</TreatTSqlWarningsAsErrors>
  </PropertyGroup>
</Project>

Tüm proje özellikleri

Bazı proje özellikleri yalnızca SQL Server veritabanlarına veya SQL Server'ın belirli sürümlerine uygulanan veritabanı seçenekleriyle ilişkilendirilir. Projenize bir proje özelliği eklemeden önce, özellik ve veritabanı gereksinimlerinin davranışını anlamak için veritabanı seçeneğine ilişkin ilişkili belgeleri gözden geçirin.

Property DATABASE SET seçenek UI etiketi SQL projesi varsayılan değeri İzin verilen değerler
AllowSnapshotIsolation ALLOW_SNAPSHOT_ISOLATION Veritabanı ayarları, İşletimsel, Anlık görüntü yalıtımına izin ver False {True|False}
AnsiNulls ANSI_NULLS Veritabanı ayarları, SET ANSI_NULLS True {True|False}
AnsiPadding ANSI_PADDING Veritabanı ayarları, SET ANSI_PADDING True {True|False}
AnsiWarnings ANSI_WARNINGS Veritabanı ayarları, SET ANSI_WARNINGS True {True|False}
ArithAbort ARITHABORT Veritabanı ayarları, SET ARITHABORT True {True|False}
AutoClose AUTO_CLOSE Veritabanı ayarları, İşletimsel, Otomatik kapatma False {True|False}
AutoCreateStatistics AUTO_CREATE_STATISTICS Veritabanı ayarları, İşletimsel, otomatik istatistik oluşturma True {True|False}
AutoCreateStatisticsIncremental AUTO_CREATE_STATISTICS (INCREMENTAL) Veritabanı ayarları, İşlemsel, Otomatik artımlı oluşturma False {True|False}
AutoShrink AUTO_SHRINK Veritabanı ayarları, İşletimsel, Otomatik küçültme False {True|False}
AutoUpdateStatistics AUTO_UPDATE_STATISTICS Veritabanı ayarları, İşletimsel, Otomatik güncelleştirme istatistikleri True {True|False}
AutoUpdateStatisticsAsynchronously AUTO_UPDATE_STATISTICS_ASYNC Veritabanı ayarları, İşletimsel, İstatistikleri zaman uyumsuz olarak otomatik güncelleştirme False {True|False}
ChangeTrackingRetentionPeriod CHANGE_RETENTION Veritabanı ayarları, İşletimsel, Değişiklik izleme saklama süresi 2 {integer}
ChangeTrackingRetentionUnit CHANGE_RETENTION Veritabanı ayarları, İşletimsel, Değişiklik izleme saklama süresi MINUTES {DAYS|HOURS|MINUTES}
CloseCursorOnCommitEnabled CURSOR_CLOSE_ON_COMMIT Veritabanı ayarları, İşlemsel, İşlemede imleci kapat etkin False {True|False}
CompatibilityMode COMPATIBILITY_LEVEL Veritabanı ayarları, Uyumluluk düzeyi {100|110|120|130|140|150|160|170}1
ConcatNullYieldsNull CONCAT_NULL_YIELDS_NULL Veritabanı ayarları, SET CONCAT_NULL_YIELDS_NULL True {True|False}
Containment CONTAINMENT Veritabanı ayarları, Kapsama NONE {NONE|PARTIAL}
DacApplicationName Veri katmanı uygulaması (.dacpac) özellikleri, adı Proje adı {string}
DacDescription Veri katmanı uygulaması (.dacpac) özellikleri, açıklaması {string}
DacVersion Veri katmanı uygulaması (.dacpac) özellikleri, sürümü 1.0.0.0 {semantik sürüm numarası}
DatabaseAccess db_user_access_option Veritabanı ayarları, Veritabanı erişimi MULTI_USER {MULTI_USER|SINGLE_USER|RESTRICTED_USER}
DatabaseChaining DB_CHAINING Veritabanı ayarları, Veritabanı zincirleme False {True|False}
DatabaseDefaultFulltextLanguage DEFAULT_FULLTEXT_LANGUAGE Veritabanı ayarları, Varsayılan tam metin dili 1033 {integer language id}
DatabaseDefaultLanguage DEFAULT_LANGUAGE Veritabanı ayarları, Varsayılan dil 1033 {integer language id}
DatabaseState db_state_option Veritabanı ayarları, Veritabanı durumu ONLINE {ONLINE|OFFLINE}
DbScopedConfigLegacyCardinalityEstimation LEGACY_CARDINALITY_ESTIMATION 2 Veritabanı kapsamlı yapılandırma, Geçmiş kardinalite tahmini Off {Off|On}
DbScopedConfigLegacyCardinalitySecondaryEstimation LEGACY_CARDINALITY_SECONDARY_ESTIMATION 2 Veritabanı kapsamlı yapılandırma, İkincil için eski kardinalite tahmini Primary {Primary|Off|On}
DbScopedConfigParameterSniffing PARAMETER_SNIFFING 2 Veritabanı kapsamlı yapılandırma, Parametre tahmini On {On|Off}
DbScopedConfigParameterSniffingSecondary PARAMETER_SNIFFING_SECONDARY 2 Veritabanı kapsamlı yapılandırma ayarları, İkincil veritabanı için parametre algılama Primary {Primary|Off|On}
DbScopedConfigOptimizerHotfixes OPTIMIZER_HOTFIXES 2 Veritabanı kapsamlı yapılandırma, Sorgu iyileştirici düzeltmeleri Off {Off|On}
DbScopedConfigOptimizerHotfixesSecondary OPTIMIZER_HOTFIXES_SECONDARY 2 Veritabanı kapsamlı yapılandırma, ikincil için sorgu iyileştirici düzeltmeleri Primary {Primary|Off|On}
DbScopedConfigMaxDOP MAXDOP 2 Veritabanı kapsamlı yapılandırma, Maksimum paralellik derecesi 0 {integer}
DbScopedConfigMaxDOPSecondary MAXDOP_SECONDARY 2 Veritabanı kapsamlı yapılandırma, İkincil için en yüksek paralellik derecesi {integer}
DbScopedConfigDWCompatibilityLevel DW_COMPATIBILITY_LEVEL 2 Veritabanı kapsamlı yapılandırma, DW uyumluluk düzeyi 0 {0|10|20|30|40|50|9000}3
DefaultCollation COLLATE 4 Veritabanı ayarları, Veritabanı harmanlaması SQL_Latin1_General_CP1_CI_AS Geçerli değerler için bkz. SQL Server harmanlama adı .
DefaultCursor CURSOR_DEFAULT Veritabanı ayarları, İşletimsel, Varsayılan imleç Local {Global|Local}
DefaultFilegroup Veritabanı ayarları, İşletimsel, Varsayılan dosya grubu PRIMARY {string}
DefaultFileStreamFilegroup Veritabanı ayarları, İşletimsel, Varsayılan dosya akışı dosya grubu {string}
DefaultSchema Genel proje ayarı, varsayılan şema dbo {string}
DelayedDurability DELAYED_DURABILITY Veritabanı ayarları, İşletimsel, İşlemlerin gecikmeli dayanıklılığı DISABLED {DISABLED|ALLOWED|FORCED}
DSP SQL projesi için hedef platform Geçerli değerler için hedef platforma bakın.
EnableFullTextSearch Veritabanı ayarları, Tam metin aramasını etkinleştir True {True|False}
FileStreamDirectoryName FILESTREAM (DIRECTORY_NAME) Veritabanı ayarları, FILESTREAM dizin adı {string}
IsBrokerPriorityHonored HONOR_BROKER_PRIORITY Veritabanı ayarları, Aracı önceliği dikkate alındı False {True|False}
IsChangeTrackingAutoCleanupOn CHANGE_TRACKING Veritabanı ayarları, İşletimsel, Değişiklik izleme otomatik temizleme True {True|False}
IsChangeTrackingOn CHANGE_TRACKING Veritabanı ayarları, İşletimsel, Değişiklik izleme False {True|False}
IsEncryptionOn ENCRYPTION Veritabanı ayarları, Şifreleme etkin False {True|False}
IsLedgerOn LEDGER 4 Veritabanı ayarları, Kayıt Defterini Etkinleştir False {True|False}
IsNestedTriggersOn NESTED_TRIGGERS Veritabanı ayarları, İç içe tetikleyiciler etkin True {True|False}
IsTransformNoiseWordsOn TRANSFORM_NOISE_WORDS Veritabanı ayarları, Kirli sözcükleri dönüştürme False {True|False}
MemoryOptimizedElevateToSnapshot MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT Veritabanı ayarları, İşletimsel, Bellek için optimize edilmiş anlık görüntüye yükseltme False {True|False}
ModelCollation Proje ayarları, Harmanlama 1033,CI {integer language id}, {CI|CS}
NonTransactedFileStreamAccess NON_TRANSACTED_ACCESS Veritabanı ayarları, FILESTREAM işlemsiz erişim OFF {OFF|READ_ONLY|FULL}
NumericRoundAbort NUMERIC_ROUNDABORT Veritabanı ayarları: SET NUMERIC_ROUNDABORT False {True|False}
OutputPath Yapı ayarları, Çıkış yolu bin\Debug ve bin\Release {string}
PageVerify PAGE_VERIFY Veritabanı ayarları, İşletimsel, Sayfa doğrulama NONE {NONE|TORN_PAGE_DETECTION|CHECKSUM}
Parameterization PARAMETERIZATION Veritabanı ayarları, Parametreleştirme SIMPLE {SIMPLE|FORCED}
QueryStoreCaptureMode QUERY_STORE (QUERY_CAPTURE_MODE) Veritabanı ayarları, İşletimsel, Sorgu deposu yakalama modu ALL {OFF|ALL|AUTO}
QueryStoreDesiredState QUERY_STORE (OPERATION_MODE) Veritabanı ayarları, İşletimsel, Sorgu deposu işlem modu OFF {OFF|READ_WRITE|READ_ONLY}
QueryStoreFlushInterval QUERY_STORE (DATA_FLUSH_INTERVAL_SECONDS) Veritabanı ayarları, İşletimsel, Sorgu deposu veri temizleme aralığı (saniye) 900 {integer}
QueryStoreIntervalLength QUERY_STORE (INTERVAL_LENGTH_MINUTES) Veritabanı ayarları, İşletimsel, Sorgu deposu aralık uzunluğu (dakika) 60 {integer}
QueryStoreMaxPlansPerQuery QUERY_STORE (MAX_PLANS_PER_QUERY) Veritabanı ayarları, Operasyonel, Sorgu deposu her sorgu için maksimum plan sayısı 200 {integer}
QueryStoreMaxStorageSize QUERY_STORE (MAX_STORAGE_SIZE_MB) Veritabanı ayarları, İşletimsel, Sorgu deposu maksimum depolama boyutu (MB) 100 {integer}
QueryStoreStaleQueryThreshold QUERY_STORE (STALE_QUERY_THRESHOLD_DAYS) Veritabanı ayarları, Operasyonel, Sorgu deposu eski sorgu limiti (gün) 367 {integer}
QuotedIdentifier QUOTED_IDENTIFIER Veritabanı ayarları, SET QUOTED_IDENTIFIER True {True|False}
ReadCommittedSnapshot READ_COMMITTED_SNAPSHOT Veritabanı ayarları, İşlemsel, Tamamlanan anlık görüntüyü okuma False {True|False}
Recovery RECOVERY Veritabanı ayarları, İşletimsel, Kurtarma FULL {FULL|SIMPLE|BULK_LOGGED}
RecursiveTriggersEnabled RECURSIVE_TRIGGERS Veritabanı ayarları, Özyinelemeli tetikleyiciler etkin False {True|False}
ServiceBrokerOption SERVICE_BROKER Veritabanı ayarları, Hizmet aracısı seçenekleri DisableBroker {DisableBroker|EnableBroker|NewBroker|ErrorBrokerConversations}
SuppressTSqlWarnings Derleme ayarları, T-SQL uyarılarını gizleme (T-SQL uyarı kodlarının virgülle ayrılmış listesi) {string}
TargetRecoveryTimePeriod Veritabanı ayarları, İşletimsel, hedef kurtarma süresi (saniye) Veritabanı başına dolaylı denetim noktalarının sıklığını belirtir. 60 {integer}
TargetRecoveryTimeUnit Veritabanı ayarları, İşletimsel, hedef kurtarma süresi SECONDS {MINUTES|SECONDS}
TreatTSqlWarningsAsErrors Yapı ayarları, T-SQL uyarılarını hata olarak değerlendirin False {True|False}
Trustworthy TRUSTWORTHY Veritabanı ayarları, Güvenilir False {True|False}
TwoDigitYearCutoff TWO_DIGIT_YEAR_CUTOFF Veritabanı ayarları, İki basamaklı yıl kesme 2049 {integer}
UpdateOptions db_update_option Veritabanı ayarları, Güncelleştirme seçenekleri READ_WRITE {READ_WRITE|READ_ONLY}
ValidateCasingOnIdentifiers Genel proje ayarı, tanımlayıcıların büyük/küçük harflerini doğrulama True {True|False}
  1. Varsayılan değer, altyapı sürümü ve sunucu ayarlarına göre farklılık gösterir.
  2. Veritabanı kapsamlı yapılandırma seçenekleri.
  3. AUTO, 0 değeriyle ayarlanır.
  4. Yalnızca bir CREATE DATABASEseçenek olarak uygulanır.