mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-28 09:35:37 -05:00
Add v2 of the Hosting Service and build nuget packages for it (#675)
* Port v2 of Hosting service to SqlToolsService - Renamed project to .v2 so that existing hosted service isn't impacted - Copied over the CoreServices project which contains ConnectionServiceCore and other reusable services for anything interacting with MSSQL - Ported unit test project across and verified tests run. * Nuget package support for reusable DLLs * Use 1.1 version per Karl's suggestion * Use correct license URL and project URL * Use new SMO packages
This commit is contained in:
28
build.cake
28
build.cake
@@ -48,6 +48,7 @@ public class BuildPlan
|
||||
public string[] Frameworks { get; set; }
|
||||
public string[] Rids { get; set; }
|
||||
public string[] MainProjects { get; set; }
|
||||
public string[] PackageProjects { get; set; }
|
||||
}
|
||||
|
||||
var buildPlan = JsonConvert.DeserializeObject<BuildPlan>(
|
||||
@@ -65,6 +66,7 @@ var artifactFolder = System.IO.Path.Combine(workingDirectory, buildPlan.Artifact
|
||||
var publishFolder = System.IO.Path.Combine(artifactFolder, "publish");
|
||||
var logFolder = System.IO.Path.Combine(artifactFolder, "logs");
|
||||
var packageFolder = System.IO.Path.Combine(artifactFolder, "package");
|
||||
var nugetPackageFolder = System.IO.Path.Combine(artifactFolder, "nugetPackages");
|
||||
var scriptFolder = System.IO.Path.Combine(artifactFolder, "scripts");
|
||||
|
||||
/// <summary>
|
||||
@@ -226,7 +228,30 @@ Task("BuildTest")
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/// <summary>
|
||||
/// Build Test projects.
|
||||
/// </summary>
|
||||
Task("DotnetPack")
|
||||
.IsDependentOn("Cleanup")
|
||||
.IsDependentOn("Setup")
|
||||
.IsDependentOn("Restore")
|
||||
.Does(() =>
|
||||
{
|
||||
foreach (var project in buildPlan.PackageProjects)
|
||||
{
|
||||
// For now, putting all nugets in the 1 directory
|
||||
var outputFolder = System.IO.Path.Combine(nugetPackageFolder);
|
||||
var projectFolder = System.IO.Path.Combine(sourceFolder, project);
|
||||
var runLog = new List<string>();
|
||||
Run(dotnetcli, $"pack --configuration {configuration} --output {outputFolder} \"{projectFolder}\"",
|
||||
new RunOptions
|
||||
{
|
||||
StandardOutputListing = runLog
|
||||
})
|
||||
.ExceptionOnError($"Packaging test {project} failed.");
|
||||
System.IO.File.WriteAllLines(System.IO.Path.Combine(logFolder, $"{project}-pack.log"), runLog.ToArray());
|
||||
}
|
||||
});
|
||||
/// <summary>
|
||||
/// Run all tests for .NET Desktop and .NET Core
|
||||
/// </summary>
|
||||
@@ -477,6 +502,7 @@ Task("All")
|
||||
.IsDependentOn("Restore")
|
||||
.IsDependentOn("TestAll")
|
||||
.IsDependentOn("AllPublish")
|
||||
.IsDependentOn("DotnetPack")
|
||||
//.IsDependentOn("TestPublished")
|
||||
.Does(() =>
|
||||
{
|
||||
|
||||
@@ -19,5 +19,11 @@
|
||||
"Microsoft.SqlTools.ServiceLayer",
|
||||
"Microsoft.SqlTools.Credentials",
|
||||
"Microsoft.SqlTools.ResourceProvider"
|
||||
],
|
||||
"PackageProjects": [
|
||||
"Microsoft.SqlTools.CoreServices",
|
||||
"Microsoft.SqlTools.DataProtocol.Contracts",
|
||||
"Microsoft.SqlTools.Hosting.Contracts",
|
||||
"Microsoft.SqlTools.Hosting.v2"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -54,8 +54,18 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.SqlTools.Credenti
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.SqlTools.Hosting", "src\Microsoft.SqlTools.Hosting\Microsoft.SqlTools.Hosting.csproj", "{AAE1F8D1-F7AB-4ABE-A55B-D423393AB352}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.SqlTools.Hosting.v2", "src\Microsoft.SqlTools.Hosting.v2\Microsoft.SqlTools.Hosting.csproj", "{BBF1F8D1-F7AB-4ABE-A55B-D423393AB352}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.SqlTools.DataProtocol.Contracts", "src\Microsoft.SqlTools.DataProtocol.Contracts\Microsoft.SqlTools.DataProtocol.Contracts.csproj", "{220E1DEC-32EC-4B3B-A1DB-159ECFDD3A8D}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.SqlTools.CoreServices", "src\Microsoft.SqlTools.CoreServices\Microsoft.SqlTools.CoreServices.csproj", "{444E79F1-477A-481A-9BE6-6559B32CE177}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.SqlTools.Hosting.Contracts", "src\Microsoft.SqlTools.Hosting.Contracts\Microsoft.SqlTools.Hosting.Contracts.csproj", "{BE04C532-C9AE-4C32-9283-F6629112228B}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.SqlTools.ServiceLayer", "src\Microsoft.SqlTools.ServiceLayer\Microsoft.SqlTools.ServiceLayer.csproj", "{835EDEB4-289B-4D6D-A9A0-609E43A87D6E}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.SqlTools.Hosting.UnitTests", "test\Microsoft.SqlTools.Hosting.UnitTests\Microsoft.SqlTools.Hosting.UnitTests.csproj", "{BA3C9622-ABFF-45A2-91AA-CC5189083256}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.SqlTools.ServiceLayer.UnitTests", "test\Microsoft.SqlTools.ServiceLayer.UnitTests\Microsoft.SqlTools.ServiceLayer.UnitTests.csproj", "{F18471B5-2042-409D-BF2C-E5403C322DC9}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.SqlTools.ServiceLayer.TestDriver", "test\Microsoft.SqlTools.ServiceLayer.TestDriver\Microsoft.SqlTools.ServiceLayer.TestDriver.csproj", "{4F250E56-F8B4-4E69-AECC-4D31EDD891E7}"
|
||||
@@ -161,6 +171,26 @@ Global
|
||||
{EFB39C03-F7D2-4E8D-BE51-09121CD71973}.Integration|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EFB39C03-F7D2-4E8D-BE51-09121CD71973}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EFB39C03-F7D2-4E8D-BE51-09121CD71973}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BBF1F8D1-F7AB-4ABE-A55B-D423393AB352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BBF1F8D1-F7AB-4ABE-A55B-D423393AB352}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BBF1F8D1-F7AB-4ABE-A55B-D423393AB352}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BBF1F8D1-F7AB-4ABE-A55B-D423393AB352}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{220E1DEC-32EC-4B3B-A1DB-159ECFDD3A8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{220E1DEC-32EC-4B3B-A1DB-159ECFDD3A8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{220E1DEC-32EC-4B3B-A1DB-159ECFDD3A8D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{220E1DEC-32EC-4B3B-A1DB-159ECFDD3A8D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{444E79F1-477A-481A-9BE6-6559B32CE177}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{444E79F1-477A-481A-9BE6-6559B32CE177}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{444E79F1-477A-481A-9BE6-6559B32CE177}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{444E79F1-477A-481A-9BE6-6559B32CE177}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BE04C532-C9AE-4C32-9283-F6629112228B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BE04C532-C9AE-4C32-9283-F6629112228B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BE04C532-C9AE-4C32-9283-F6629112228B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BE04C532-C9AE-4C32-9283-F6629112228B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BA3C9622-ABFF-45A2-91AA-CC5189083256}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BA3C9622-ABFF-45A2-91AA-CC5189083256}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BA3C9622-ABFF-45A2-91AA-CC5189083256}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BA3C9622-ABFF-45A2-91AA-CC5189083256}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@@ -181,6 +211,11 @@ Global
|
||||
{6FEE7E14-8A1D-454E-8F7C-B63597801787} = {2BBD7364-054F-4693-97CD-1C395E3E84A9}
|
||||
{70E63BC1-2C82-41C0-89D6-272FD3C7B0C9} = {2BBD7364-054F-4693-97CD-1C395E3E84A9}
|
||||
{EFB39C03-F7D2-4E8D-BE51-09121CD71973} = {2BBD7364-054F-4693-97CD-1C395E3E84A9}
|
||||
{BBF1F8D1-F7AB-4ABE-A55B-D423393AB352} = {2BBD7364-054F-4693-97CD-1C395E3E84A9}
|
||||
{220E1DEC-32EC-4B3B-A1DB-159ECFDD3A8D} = {2BBD7364-054F-4693-97CD-1C395E3E84A9}
|
||||
{444E79F1-477A-481A-9BE6-6559B32CE177} = {2BBD7364-054F-4693-97CD-1C395E3E84A9}
|
||||
{BE04C532-C9AE-4C32-9283-F6629112228B} = {2BBD7364-054F-4693-97CD-1C395E3E84A9}
|
||||
{BA3C9622-ABFF-45A2-91AA-CC5189083256} = {AB9CA2B8-6F70-431C-8A1D-67479D8A7BE4}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {B31CDF4B-2851-45E5-8C5F-BE97125D9DD8}
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.SqlTools.DataProtocol.Contracts.Connection;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection
|
||||
{
|
||||
/// <summary>
|
||||
/// Used to uniquely identify a CancellationTokenSource associated with both
|
||||
/// a string URI and a string connection type.
|
||||
/// </summary>
|
||||
public class CancelTokenKey : CancelConnectParams, IEquatable<CancelTokenKey>
|
||||
{
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
CancelTokenKey other = obj as CancelTokenKey;
|
||||
if (other == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return other.OwnerUri == OwnerUri && other.Type == Type;
|
||||
}
|
||||
|
||||
public bool Equals(CancelTokenKey obj)
|
||||
{
|
||||
return obj.OwnerUri == OwnerUri && obj.Type == Type;
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return OwnerUri.GetHashCode() ^ Type.GetHashCode();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using Microsoft.SqlTools.DataProtocol.Contracts.Connection;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection
|
||||
{
|
||||
/// <summary>
|
||||
/// Extension methods to ConnectParams
|
||||
/// </summary>
|
||||
public static class ConnectParamsExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Check that the fields in ConnectParams are all valid
|
||||
/// </summary>
|
||||
public static bool IsValid(this ConnectParams parameters, out string errorMessage)
|
||||
{
|
||||
errorMessage = string.Empty;
|
||||
if (string.IsNullOrEmpty(parameters.OwnerUri))
|
||||
{
|
||||
errorMessage = SR.ConnectionParamsValidateNullOwnerUri;
|
||||
}
|
||||
else if (parameters.Connection == null)
|
||||
{
|
||||
errorMessage = SR.ConnectionParamsValidateNullConnection;
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(parameters.Connection.ConnectionString))
|
||||
{
|
||||
// Do not check other connection parameters if a connection string is present
|
||||
return string.IsNullOrEmpty(errorMessage);
|
||||
}
|
||||
else if (string.IsNullOrEmpty(parameters.Connection.ServerName))
|
||||
{
|
||||
errorMessage = SR.ConnectionParamsValidateNullServerName;
|
||||
}
|
||||
else if (string.IsNullOrEmpty(parameters.Connection.AuthenticationType) || parameters.Connection.AuthenticationType == "SqlLogin")
|
||||
{
|
||||
// For SqlLogin, username cannot be empty
|
||||
if (string.IsNullOrEmpty(parameters.Connection.UserName))
|
||||
{
|
||||
errorMessage = SR.ConnectionParamsValidateNullSqlAuth("UserName");
|
||||
}
|
||||
}
|
||||
|
||||
return string.IsNullOrEmpty(errorMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
171
src/Microsoft.SqlTools.CoreServices/Connection/ConnectionInfo.cs
Normal file
171
src/Microsoft.SqlTools.CoreServices/Connection/ConnectionInfo.cs
Normal file
@@ -0,0 +1,171 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using Microsoft.SqlTools.DataProtocol.Contracts.Connection;
|
||||
using Microsoft.SqlTools.Hosting.Utility;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection
|
||||
{
|
||||
/// <summary>
|
||||
/// Information pertaining to a unique connection instance.
|
||||
/// </summary>
|
||||
public class ConnectionInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
public ConnectionInfo(ISqlConnectionFactory factory, string ownerUri, ConnectionDetails details)
|
||||
{
|
||||
Factory = factory;
|
||||
OwnerUri = ownerUri;
|
||||
ConnectionDetails = details;
|
||||
ConnectionId = Guid.NewGuid();
|
||||
IntellisenseMetrics = new InteractionMetrics<double>(new int[] {50, 100, 200, 500, 1000, 2000});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Unique Id, helpful to identify a connection info object
|
||||
/// </summary>
|
||||
public Guid ConnectionId { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// URI identifying the owner/user of the connection. Could be a file, service, resource, etc.
|
||||
/// </summary>
|
||||
public string OwnerUri { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Factory used for creating the SQL connection associated with the connection info.
|
||||
/// </summary>
|
||||
public ISqlConnectionFactory Factory { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Properties used for creating/opening the SQL connection.
|
||||
/// </summary>
|
||||
public ConnectionDetails ConnectionDetails { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// A map containing all connections to the database that are associated with
|
||||
/// this ConnectionInfo's OwnerUri.
|
||||
/// This is internal for testing access only
|
||||
/// </summary>
|
||||
internal readonly ConcurrentDictionary<string, DbConnection> ConnectionTypeToConnectionMap =
|
||||
new ConcurrentDictionary<string, DbConnection>();
|
||||
|
||||
/// <summary>
|
||||
/// Intellisense Metrics
|
||||
/// </summary>
|
||||
public InteractionMetrics<double> IntellisenseMetrics { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if the db connection is to any cloud instance
|
||||
/// </summary>
|
||||
public bool IsCloud { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if the db connection is to a SQL db instance
|
||||
/// </summary>
|
||||
public bool IsSqlDb { get; set; }
|
||||
|
||||
/// Returns true if the sql connection is to a DW instance
|
||||
/// </summary>
|
||||
public bool IsSqlDW { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Returns the major version number of the db we are connected to
|
||||
/// </summary>
|
||||
public int MajorVersion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// All DbConnection instances held by this ConnectionInfo
|
||||
/// </summary>
|
||||
public ICollection<DbConnection> AllConnections
|
||||
{
|
||||
get
|
||||
{
|
||||
return ConnectionTypeToConnectionMap.Values;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// All connection type strings held by this ConnectionInfo
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public ICollection<string> AllConnectionTypes
|
||||
{
|
||||
get
|
||||
{
|
||||
return ConnectionTypeToConnectionMap.Keys;
|
||||
}
|
||||
}
|
||||
|
||||
public bool HasConnectionType(string connectionType)
|
||||
{
|
||||
connectionType = connectionType ?? ConnectionType.Default;
|
||||
return ConnectionTypeToConnectionMap.ContainsKey(connectionType);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The count of DbConnectioninstances held by this ConnectionInfo
|
||||
/// </summary>
|
||||
public int CountConnections
|
||||
{
|
||||
get
|
||||
{
|
||||
return ConnectionTypeToConnectionMap.Count;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Try to get the DbConnection associated with the given connection type string.
|
||||
/// </summary>
|
||||
/// <returns>true if a connection with type connectionType was located and out connection was set,
|
||||
/// false otherwise </returns>
|
||||
/// <exception cref="ArgumentException">Thrown when connectionType is null or empty</exception>
|
||||
public bool TryGetConnection(string connectionType, out DbConnection connection)
|
||||
{
|
||||
Validate.IsNotNullOrEmptyString("Connection Type", connectionType);
|
||||
return ConnectionTypeToConnectionMap.TryGetValue(connectionType, out connection);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds a DbConnection to this object and associates it with the given
|
||||
/// connection type string. If a connection already exists with an identical
|
||||
/// connection type string, it is not overwritten. Ignores calls where connectionType = null
|
||||
/// </summary>
|
||||
/// <exception cref="ArgumentException">Thrown when connectionType is null or empty</exception>
|
||||
public void AddConnection(string connectionType, DbConnection connection)
|
||||
{
|
||||
Validate.IsNotNullOrEmptyString("Connection Type", connectionType);
|
||||
ConnectionTypeToConnectionMap.TryAdd(connectionType, connection);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes the single DbConnection instance associated with string connectionType
|
||||
/// </summary>
|
||||
/// <exception cref="ArgumentException">Thrown when connectionType is null or empty</exception>
|
||||
public void RemoveConnection(string connectionType)
|
||||
{
|
||||
Validate.IsNotNullOrEmptyString("Connection Type", connectionType);
|
||||
DbConnection connection;
|
||||
ConnectionTypeToConnectionMap.TryRemove(connectionType, out connection);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes all DbConnection instances held by this object
|
||||
/// </summary>
|
||||
public void RemoveAllConnections()
|
||||
{
|
||||
foreach (var type in AllConnectionTypes)
|
||||
{
|
||||
DbConnection connection;
|
||||
ConnectionTypeToConnectionMap.TryRemove(type, out connection);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,31 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
|
||||
using System.Data.Common;
|
||||
using System.Data.SqlClient;
|
||||
using Microsoft.SqlTools.CoreServices.Connection.ReliableConnection;
|
||||
|
||||
public static class ConnectionUtils
|
||||
{
|
||||
public static SqlConnection GetAsSqlConnection(DbConnection connection)
|
||||
{
|
||||
SqlConnection sqlConn = connection as SqlConnection;
|
||||
if (sqlConn == null)
|
||||
{
|
||||
// It's not actually a SqlConnection, so let's try a reliable SQL connection
|
||||
ReliableSqlConnection reliableConn = connection as ReliableSqlConnection;
|
||||
if (reliableConn == null)
|
||||
{
|
||||
// If we don't have connection we can use with SMO, just give up on using SMO
|
||||
return null;
|
||||
}
|
||||
|
||||
// We have a reliable connection, use the underlying connection
|
||||
sqlConn = reliableConn.GetUnderlyingConnection();
|
||||
}
|
||||
return sqlConn;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection
|
||||
{
|
||||
public class DatabaseFullAccessException: Exception
|
||||
{
|
||||
public DatabaseFullAccessException()
|
||||
: base()
|
||||
{
|
||||
}
|
||||
|
||||
public DatabaseFullAccessException(string message, Exception exception)
|
||||
: base(message, exception)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
public DatabaseFullAccessException(string message)
|
||||
: base(message)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using Microsoft.SqlTools.CoreServices.LanguageServices;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection
|
||||
{
|
||||
public class DatabaseLocksManager: IDisposable
|
||||
{
|
||||
internal DatabaseLocksManager(int waitToGetFullAccess)
|
||||
{
|
||||
this.waitToGetFullAccess = waitToGetFullAccess;
|
||||
}
|
||||
|
||||
private static DatabaseLocksManager instance = new DatabaseLocksManager(DefaultWaitToGetFullAccess);
|
||||
|
||||
public static DatabaseLocksManager Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
|
||||
public ConnectionServiceCore ConnectionService { get; set; }
|
||||
|
||||
private Dictionary<string, ManualResetEvent> databaseAccessEvents = new Dictionary<string, ManualResetEvent>();
|
||||
private object databaseAccessLock = new object();
|
||||
public const int DefaultWaitToGetFullAccess = 10000;
|
||||
public int waitToGetFullAccess = DefaultWaitToGetFullAccess;
|
||||
|
||||
private ManualResetEvent GetResetEvent(string serverName, string databaseName)
|
||||
{
|
||||
string key = GenerateKey(serverName, databaseName);
|
||||
ManualResetEvent resetEvent = null;
|
||||
lock (databaseAccessLock)
|
||||
{
|
||||
if (!databaseAccessEvents.TryGetValue(key, out resetEvent))
|
||||
{
|
||||
resetEvent = new ManualResetEvent(true);
|
||||
databaseAccessEvents.Add(key, resetEvent);
|
||||
}
|
||||
}
|
||||
|
||||
return resetEvent;
|
||||
}
|
||||
|
||||
public bool GainFullAccessToDatabase(string serverName, string databaseName)
|
||||
{
|
||||
/*
|
||||
* TODO: add the lock so not two process can get full access at the same time
|
||||
ManualResetEvent resetEvent = GetResetEvent(serverName, databaseName);
|
||||
if (resetEvent.WaitOne(this.waitToGetFullAccess))
|
||||
{
|
||||
resetEvent.Reset();
|
||||
|
||||
foreach (IConnectedBindingQueue item in ConnectionService.ConnectedQueues)
|
||||
{
|
||||
item.CloseConnections(serverName, databaseName);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new DatabaseFullAccessException($"Waited more than {waitToGetFullAccess} milli seconds for others to release the lock");
|
||||
}
|
||||
*/
|
||||
foreach (IConnectedBindingQueue item in ConnectionService.ConnectedQueues)
|
||||
{
|
||||
item.CloseConnections(serverName, databaseName, DefaultWaitToGetFullAccess);
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
public bool ReleaseAccess(string serverName, string databaseName)
|
||||
{
|
||||
/*
|
||||
ManualResetEvent resetEvent = GetResetEvent(serverName, databaseName);
|
||||
|
||||
foreach (IConnectedBindingQueue item in ConnectionService.ConnectedQueues)
|
||||
{
|
||||
item.OpenConnections(serverName, databaseName);
|
||||
}
|
||||
|
||||
resetEvent.Set();
|
||||
*/
|
||||
foreach (IConnectedBindingQueue item in ConnectionService.ConnectedQueues)
|
||||
{
|
||||
item.OpenConnections(serverName, databaseName, DefaultWaitToGetFullAccess);
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
private string GenerateKey(string serverName, string databaseName)
|
||||
{
|
||||
return $"{serverName.ToLowerInvariant()}-{databaseName.ToLowerInvariant()}";
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
foreach (var resetEvent in databaseAccessEvents)
|
||||
{
|
||||
resetEvent.Value.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection
|
||||
{
|
||||
/// <summary>
|
||||
/// Any operation that needs full access to databas should implement this interface.
|
||||
/// Make sure to call GainAccessToDatabase before the operation and ReleaseAccessToDatabase after
|
||||
/// </summary>
|
||||
public interface IFeatureWithFullDbAccess
|
||||
{
|
||||
/// <summary>
|
||||
/// Database Lock Manager
|
||||
/// </summary>
|
||||
DatabaseLocksManager LockedDatabaseManager { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Makes sure the feature has fill access to the database
|
||||
/// </summary>
|
||||
bool GainAccessToDatabase();
|
||||
|
||||
/// <summary>
|
||||
/// Release the access to db
|
||||
/// </summary>
|
||||
bool ReleaseAccessToDatabase();
|
||||
|
||||
/// <summary>
|
||||
/// Server name
|
||||
/// </summary>
|
||||
string ServerName { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Database name
|
||||
/// </summary>
|
||||
string DatabaseName { get; }
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System.Data.Common;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for the SQL Connection factory
|
||||
/// </summary>
|
||||
public interface ISqlConnectionFactory
|
||||
{
|
||||
/// <summary>
|
||||
/// Create a new SQL Connection object
|
||||
/// </summary>
|
||||
DbConnection CreateSqlConnection(string connectionString);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,452 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using Microsoft.SqlTools.Hosting.Utility;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
/// <summary>
|
||||
/// This class represents connection (and other) settings specified by called of the DacFx API. DacFx
|
||||
/// cannot rely on the registry to supply override values therefore setting overrides must be made
|
||||
/// by the top-of-the-stack
|
||||
/// </summary>
|
||||
internal sealed class AmbientSettings
|
||||
{
|
||||
private const string LogicalContextName = "__LocalContextConfigurationName";
|
||||
|
||||
internal enum StreamBackingStore
|
||||
{
|
||||
// MemoryStream
|
||||
Memory = 0,
|
||||
|
||||
// FileStream
|
||||
File = 1
|
||||
}
|
||||
|
||||
// Internal for test purposes
|
||||
internal const string MasterReferenceFilePathIndex = "MasterReferenceFilePath";
|
||||
internal const string DatabaseLockTimeoutIndex = "DatabaseLockTimeout";
|
||||
internal const string QueryTimeoutIndex = "QueryTimeout";
|
||||
internal const string LongRunningQueryTimeoutIndex = "LongRunningQueryTimeout";
|
||||
internal const string AlwaysRetryOnTransientFailureIndex = "AlwaysRetryOnTransientFailure";
|
||||
internal const string MaxDataReaderDegreeOfParallelismIndex = "MaxDataReaderDegreeOfParallelism";
|
||||
internal const string ConnectionRetryHandlerIndex = "ConnectionRetryHandler";
|
||||
internal const string TraceRowCountFailureIndex = "TraceRowCountFailure";
|
||||
internal const string TableProgressUpdateIntervalIndex = "TableProgressUpdateInterval";
|
||||
internal const string UseOfflineDataReaderIndex = "UseOfflineDataReader";
|
||||
internal const string StreamBackingStoreForOfflineDataReadingIndex = "StreamBackingStoreForOfflineDataReading";
|
||||
internal const string DisableIndexesForDataPhaseIndex = "DisableIndexesForDataPhase";
|
||||
internal const string ReliableDdlEnabledIndex = "ReliableDdlEnabled";
|
||||
internal const string ImportModelDatabaseIndex = "ImportModelDatabase";
|
||||
internal const string SupportAlwaysEncryptedIndex = "SupportAlwaysEncrypted";
|
||||
internal const string SkipObjectTypeBlockingIndex = "SkipObjectTypeBlocking";
|
||||
internal const string DoNotSerializeQueryStoreSettingsIndex = "DoNotSerializeQueryStoreSettings";
|
||||
internal const string AlwaysEncryptedWizardMigrationIndex = "AlwaysEncryptedWizardMigration";
|
||||
|
||||
internal static AmbientData _defaultSettings;
|
||||
|
||||
static AmbientSettings()
|
||||
{
|
||||
_defaultSettings = new AmbientData();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Access to the default ambient settings. Access to these settings is made available
|
||||
/// for SSDT scenarios where settings are read from the registry and not set explicitly through
|
||||
/// the API
|
||||
/// </summary>
|
||||
public static AmbientData DefaultSettings
|
||||
{
|
||||
get { return _defaultSettings; }
|
||||
}
|
||||
|
||||
public static string MasterReferenceFilePath
|
||||
{
|
||||
get { return GetValue<string>(MasterReferenceFilePathIndex); }
|
||||
}
|
||||
|
||||
public static int LockTimeoutMilliSeconds
|
||||
{
|
||||
get { return GetValue<int>(DatabaseLockTimeoutIndex); }
|
||||
}
|
||||
|
||||
public static int QueryTimeoutSeconds
|
||||
{
|
||||
get { return GetValue<int>(QueryTimeoutIndex); }
|
||||
}
|
||||
|
||||
public static int LongRunningQueryTimeoutSeconds
|
||||
{
|
||||
get { return GetValue<int>(LongRunningQueryTimeoutIndex); }
|
||||
}
|
||||
|
||||
public static Action<SqlServerRetryError> ConnectionRetryMessageHandler
|
||||
{
|
||||
get { return GetValue<Action<SqlServerRetryError>>(ConnectionRetryHandlerIndex); }
|
||||
}
|
||||
|
||||
public static bool AlwaysRetryOnTransientFailure
|
||||
{
|
||||
get { return GetValue<bool>(AlwaysRetryOnTransientFailureIndex); }
|
||||
}
|
||||
|
||||
public static int MaxDataReaderDegreeOfParallelism
|
||||
{
|
||||
get { return GetValue<int>(MaxDataReaderDegreeOfParallelismIndex); }
|
||||
}
|
||||
|
||||
public static int TableProgressUpdateInterval
|
||||
{
|
||||
// value of zero means do not fire 'heartbeat' progress events. Non-zero values will
|
||||
// fire a heartbeat progress event every n seconds.
|
||||
get { return GetValue<int>(TableProgressUpdateIntervalIndex); }
|
||||
}
|
||||
|
||||
public static bool TraceRowCountFailure
|
||||
{
|
||||
get { return GetValue<bool>(TraceRowCountFailureIndex); }
|
||||
}
|
||||
|
||||
public static bool UseOfflineDataReader
|
||||
{
|
||||
get { return GetValue<bool>(UseOfflineDataReaderIndex); }
|
||||
}
|
||||
|
||||
public static StreamBackingStore StreamBackingStoreForOfflineDataReading
|
||||
{
|
||||
get { return GetValue<StreamBackingStore>(StreamBackingStoreForOfflineDataReadingIndex); }
|
||||
}
|
||||
|
||||
public static bool DisableIndexesForDataPhase
|
||||
{
|
||||
get { return GetValue<bool>(DisableIndexesForDataPhaseIndex); }
|
||||
}
|
||||
|
||||
public static bool ReliableDdlEnabled
|
||||
{
|
||||
get { return GetValue<bool>(ReliableDdlEnabledIndex); }
|
||||
}
|
||||
|
||||
public static bool ImportModelDatabase
|
||||
{
|
||||
get { return GetValue<bool>(ImportModelDatabaseIndex); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Setting that shows whether Always Encrypted is supported.
|
||||
/// If false, then reverse engineering and script interpretation of a database with any Always Encrypted object will fail
|
||||
/// </summary>
|
||||
public static bool SupportAlwaysEncrypted
|
||||
{
|
||||
get { return GetValue<bool>(SupportAlwaysEncryptedIndex); }
|
||||
}
|
||||
|
||||
public static bool AlwaysEncryptedWizardMigration
|
||||
{
|
||||
get { return GetValue<bool>(AlwaysEncryptedWizardMigrationIndex); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Setting that determines whether checks for unsupported object types are performed.
|
||||
/// If false, unsupported object types will prevent extract from being performed.
|
||||
/// Default value is false.
|
||||
/// </summary>
|
||||
public static bool SkipObjectTypeBlocking
|
||||
{
|
||||
get { return GetValue<bool>(SkipObjectTypeBlockingIndex); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Setting that determines whether the Database Options that store Query Store settings will be left out during package serialization.
|
||||
/// Default value is false.
|
||||
/// </summary>
|
||||
public static bool DoNotSerializeQueryStoreSettings
|
||||
{
|
||||
get { return GetValue<bool>(DoNotSerializeQueryStoreSettingsIndex); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called by top-of-stack API to setup/configure settings that should be used
|
||||
/// throughout the API (lower in the stack). The settings are reverted once the returned context
|
||||
/// has been disposed.
|
||||
/// </summary>
|
||||
public static IStackSettingsContext CreateSettingsContext()
|
||||
{
|
||||
return new StackConfiguration();
|
||||
}
|
||||
|
||||
private static T1 GetValue<T1>(string configIndex)
|
||||
{
|
||||
IAmbientDataDirectAccess config = _defaultSettings;
|
||||
|
||||
return (T1)config.Data[configIndex].Value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Data-transfer object that represents a specific configuration
|
||||
/// </summary>
|
||||
public class AmbientData : IAmbientDataDirectAccess
|
||||
{
|
||||
private readonly Dictionary<string, AmbientValue> _configuration;
|
||||
|
||||
public AmbientData()
|
||||
{
|
||||
_configuration = new Dictionary<string, AmbientValue>(StringComparer.OrdinalIgnoreCase);
|
||||
_configuration[DatabaseLockTimeoutIndex] = new AmbientValue(5000);
|
||||
_configuration[QueryTimeoutIndex] = new AmbientValue(60);
|
||||
_configuration[LongRunningQueryTimeoutIndex] = new AmbientValue(0);
|
||||
_configuration[AlwaysRetryOnTransientFailureIndex] = new AmbientValue(false);
|
||||
_configuration[ConnectionRetryHandlerIndex] = new AmbientValue(typeof(Action<SqlServerRetryError>), null);
|
||||
_configuration[MaxDataReaderDegreeOfParallelismIndex] = new AmbientValue(8);
|
||||
_configuration[TraceRowCountFailureIndex] = new AmbientValue(false); // default: throw DacException on rowcount mismatch during import/export data validation
|
||||
_configuration[TableProgressUpdateIntervalIndex] = new AmbientValue(300); // default: fire heartbeat progress update events every 5 minutes
|
||||
_configuration[UseOfflineDataReaderIndex] = new AmbientValue(false);
|
||||
_configuration[StreamBackingStoreForOfflineDataReadingIndex] = new AmbientValue(StreamBackingStore.File); //applicable only when UseOfflineDataReader is set to true
|
||||
_configuration[MasterReferenceFilePathIndex] = new AmbientValue(typeof(string), null);
|
||||
// Defect 1210884: Enable an option to allow secondary index, check and fk constraints to stay enabled during data upload with import in DACFX for IES
|
||||
_configuration[DisableIndexesForDataPhaseIndex] = new AmbientValue(true);
|
||||
_configuration[ReliableDdlEnabledIndex] = new AmbientValue(false);
|
||||
_configuration[ImportModelDatabaseIndex] = new AmbientValue(true);
|
||||
_configuration[SupportAlwaysEncryptedIndex] = new AmbientValue(false);
|
||||
_configuration[AlwaysEncryptedWizardMigrationIndex] = new AmbientValue(false);
|
||||
_configuration[SkipObjectTypeBlockingIndex] = new AmbientValue(false);
|
||||
_configuration[DoNotSerializeQueryStoreSettingsIndex] = new AmbientValue(false);
|
||||
}
|
||||
|
||||
public string MasterReferenceFilePath
|
||||
{
|
||||
get { return (string)_configuration[MasterReferenceFilePathIndex].Value; }
|
||||
set { _configuration[MasterReferenceFilePathIndex].Value = value; }
|
||||
}
|
||||
|
||||
public int LockTimeoutMilliSeconds
|
||||
{
|
||||
get { return (int)_configuration[DatabaseLockTimeoutIndex].Value; }
|
||||
set { _configuration[DatabaseLockTimeoutIndex].Value = value; }
|
||||
}
|
||||
public int QueryTimeoutSeconds
|
||||
{
|
||||
get { return (int)_configuration[QueryTimeoutIndex].Value; }
|
||||
set { _configuration[QueryTimeoutIndex].Value = value; }
|
||||
}
|
||||
public int LongRunningQueryTimeoutSeconds
|
||||
{
|
||||
get { return (int)_configuration[LongRunningQueryTimeoutIndex].Value; }
|
||||
set { _configuration[LongRunningQueryTimeoutIndex].Value = value; }
|
||||
}
|
||||
public bool AlwaysRetryOnTransientFailure
|
||||
{
|
||||
get { return (bool)_configuration[AlwaysRetryOnTransientFailureIndex].Value; }
|
||||
set { _configuration[AlwaysRetryOnTransientFailureIndex].Value = value; }
|
||||
}
|
||||
public Action<SqlServerRetryError> ConnectionRetryMessageHandler
|
||||
{
|
||||
get { return (Action<SqlServerRetryError>)_configuration[ConnectionRetryHandlerIndex].Value; }
|
||||
set { _configuration[ConnectionRetryHandlerIndex].Value = value; }
|
||||
}
|
||||
public bool TraceRowCountFailure
|
||||
{
|
||||
get { return (bool)_configuration[TraceRowCountFailureIndex].Value; }
|
||||
set { _configuration[TraceRowCountFailureIndex].Value = value; }
|
||||
}
|
||||
public int TableProgressUpdateInterval
|
||||
{
|
||||
get { return (int)_configuration[TableProgressUpdateIntervalIndex].Value; }
|
||||
set { _configuration[TableProgressUpdateIntervalIndex].Value = value; }
|
||||
}
|
||||
|
||||
public bool UseOfflineDataReader
|
||||
{
|
||||
get { return (bool)_configuration[UseOfflineDataReaderIndex].Value; }
|
||||
set { _configuration[UseOfflineDataReaderIndex].Value = value; }
|
||||
}
|
||||
|
||||
public StreamBackingStore StreamBackingStoreForOfflineDataReading
|
||||
{
|
||||
get { return (StreamBackingStore)_configuration[StreamBackingStoreForOfflineDataReadingIndex].Value; }
|
||||
set { _configuration[StreamBackingStoreForOfflineDataReadingIndex].Value = value; }
|
||||
}
|
||||
|
||||
public bool DisableIndexesForDataPhase
|
||||
{
|
||||
get { return (bool)_configuration[DisableIndexesForDataPhaseIndex].Value; }
|
||||
set { _configuration[DisableIndexesForDataPhaseIndex].Value = value; }
|
||||
}
|
||||
|
||||
public bool ReliableDdlEnabled
|
||||
{
|
||||
get { return (bool)_configuration[ReliableDdlEnabledIndex].Value; }
|
||||
set { _configuration[ReliableDdlEnabledIndex].Value = value; }
|
||||
}
|
||||
|
||||
public bool ImportModelDatabase
|
||||
{
|
||||
get { return (bool)_configuration[ImportModelDatabaseIndex].Value; }
|
||||
set { _configuration[ImportModelDatabaseIndex].Value = value; }
|
||||
}
|
||||
|
||||
internal bool SupportAlwaysEncrypted
|
||||
{
|
||||
get { return (bool)_configuration[SupportAlwaysEncryptedIndex].Value; }
|
||||
set { _configuration[SupportAlwaysEncryptedIndex].Value = value; }
|
||||
}
|
||||
|
||||
internal bool AlwaysEncryptedWizardMigration
|
||||
{
|
||||
get { return (bool)_configuration[AlwaysEncryptedWizardMigrationIndex].Value; }
|
||||
set { _configuration[AlwaysEncryptedWizardMigrationIndex].Value = value; }
|
||||
}
|
||||
|
||||
internal bool SkipObjectTypeBlocking
|
||||
{
|
||||
get { return (bool)_configuration[SkipObjectTypeBlockingIndex].Value; }
|
||||
set { _configuration[SkipObjectTypeBlockingIndex].Value = value; }
|
||||
}
|
||||
|
||||
internal bool DoNotSerializeQueryStoreSettings
|
||||
{
|
||||
get { return (bool)_configuration[DoNotSerializeQueryStoreSettingsIndex].Value; }
|
||||
set { _configuration[DoNotSerializeQueryStoreSettingsIndex].Value = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides a way to bulk populate settings from a dictionary
|
||||
/// </summary>
|
||||
public void PopulateSettings(IDictionary<string, object> settingsCollection)
|
||||
{
|
||||
if (settingsCollection != null)
|
||||
{
|
||||
Dictionary<string, object> newSettings = new Dictionary<string, object>();
|
||||
|
||||
// We know all the values are set on the current configuration
|
||||
foreach (KeyValuePair<string, object> potentialPair in settingsCollection)
|
||||
{
|
||||
AmbientValue currentValue;
|
||||
if (_configuration.TryGetValue(potentialPair.Key, out currentValue))
|
||||
{
|
||||
object newValue = potentialPair.Value;
|
||||
newSettings[potentialPair.Key] = newValue;
|
||||
}
|
||||
}
|
||||
|
||||
if (newSettings.Count > 0)
|
||||
{
|
||||
foreach (KeyValuePair<string, object> newSetting in newSettings)
|
||||
{
|
||||
_configuration[newSetting.Key].Value = newSetting.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Logs the Ambient Settings
|
||||
/// </summary>
|
||||
public void TraceSettings()
|
||||
{
|
||||
// NOTE: logging as warning so we can get this data in the IEService DacFx logs
|
||||
Logger.Instance.Write(LogLevel.Warning, Resources.LoggingAmbientSettings);
|
||||
|
||||
foreach (KeyValuePair<string, AmbientValue> setting in _configuration)
|
||||
{
|
||||
// Log Ambient Settings
|
||||
Logger.Instance.Write(
|
||||
LogLevel.Warning,
|
||||
string.Format(
|
||||
Resources.AmbientSettingFormat,
|
||||
setting.Key,
|
||||
setting.Value == null ? setting.Value : setting.Value.Value));
|
||||
}
|
||||
}
|
||||
|
||||
Dictionary<string, AmbientValue> IAmbientDataDirectAccess.Data
|
||||
{
|
||||
get { return _configuration; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This class is used as value in the dictionary to ensure that the type of value is correct.
|
||||
/// </summary>
|
||||
private class AmbientValue
|
||||
{
|
||||
private readonly Type _type;
|
||||
private readonly bool _isTypeNullable;
|
||||
private object _value;
|
||||
|
||||
public AmbientValue(object value)
|
||||
: this(value == null ? null : value.GetType(), value)
|
||||
{
|
||||
}
|
||||
|
||||
public AmbientValue(Type type, object value)
|
||||
{
|
||||
if (type == null)
|
||||
{
|
||||
throw new ArgumentNullException("type");
|
||||
}
|
||||
_type = type;
|
||||
_isTypeNullable = !type.GetTypeInfo().IsValueType || Nullable.GetUnderlyingType(type) != null;
|
||||
Value = value;
|
||||
}
|
||||
|
||||
public object Value
|
||||
{
|
||||
get { return _value; }
|
||||
set
|
||||
{
|
||||
if ((_isTypeNullable && value == null) || _type.GetTypeInfo().IsInstanceOfType(value))
|
||||
{
|
||||
_value = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
Logger.Instance.Write(LogLevel.Error, string.Format(Resources.UnableToAssignValue, value.GetType().FullName, _type.FullName));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This private interface allows pass-through access directly to member data
|
||||
/// </summary>
|
||||
private interface IAmbientDataDirectAccess
|
||||
{
|
||||
Dictionary<string, AmbientValue> Data { get; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This class encapsulated the concept of configuration that is set on the stack and
|
||||
/// flows across multiple threads as part of the logical call context
|
||||
/// </summary>
|
||||
private sealed class StackConfiguration : IStackSettingsContext
|
||||
{
|
||||
private readonly AmbientData _data;
|
||||
|
||||
public StackConfiguration()
|
||||
{
|
||||
_data = new AmbientData();
|
||||
//CallContext.LogicalSetData(LogicalContextName, _data);
|
||||
}
|
||||
|
||||
public AmbientData Settings
|
||||
{
|
||||
get { return _data; }
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Dispose(true);
|
||||
}
|
||||
private void Dispose(bool disposing)
|
||||
{
|
||||
//CallContext.LogicalSetData(LogicalContextName, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,284 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Linq;
|
||||
using Microsoft.SqlTools.Hosting.Utility;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// This class caches server information for subsequent use
|
||||
/// </summary>
|
||||
internal class CachedServerInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// Singleton service instance
|
||||
/// </summary>
|
||||
private static readonly Lazy<CachedServerInfo> instance
|
||||
= new Lazy<CachedServerInfo>(() => new CachedServerInfo());
|
||||
|
||||
/// <summary>
|
||||
/// Gets the singleton instance
|
||||
/// </summary>
|
||||
public static CachedServerInfo Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
return instance.Value;
|
||||
}
|
||||
}
|
||||
|
||||
public enum CacheVariable {
|
||||
IsSqlDw,
|
||||
IsAzure,
|
||||
IsCloud
|
||||
}
|
||||
|
||||
#region CacheKey implementation
|
||||
internal class CacheKey : IEquatable<CacheKey>
|
||||
{
|
||||
private string dataSource;
|
||||
private string dbName;
|
||||
|
||||
public CacheKey(SqlConnectionStringBuilder builder)
|
||||
{
|
||||
Validate.IsNotNull(nameof(builder), builder);
|
||||
dataSource = builder.DataSource;
|
||||
dbName = GetDatabaseName(builder);
|
||||
}
|
||||
|
||||
internal static string GetDatabaseName(SqlConnectionStringBuilder builder)
|
||||
{
|
||||
string dbName = string.Empty;
|
||||
if (!string.IsNullOrEmpty((builder.InitialCatalog)))
|
||||
{
|
||||
dbName = builder.InitialCatalog;
|
||||
}
|
||||
else if (!string.IsNullOrEmpty((builder.AttachDBFilename)))
|
||||
{
|
||||
dbName = builder.AttachDBFilename;
|
||||
}
|
||||
return dbName;
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
if (obj == null) { return false; }
|
||||
|
||||
CacheKey keyObj = obj as CacheKey;
|
||||
if (keyObj == null) { return false; }
|
||||
else { return Equals(keyObj); }
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
unchecked // Overflow is fine, just wrap
|
||||
{
|
||||
int hash = 17;
|
||||
hash = (hash * 23) + (dataSource != null ? dataSource.GetHashCode() : 0);
|
||||
hash = (hash * 23) + (dbName != null ? dbName.GetHashCode() : 0);
|
||||
return hash;
|
||||
}
|
||||
}
|
||||
|
||||
public bool Equals(CacheKey other)
|
||||
{
|
||||
return string.Equals(dataSource, other.dataSource, StringComparison.OrdinalIgnoreCase)
|
||||
&& string.Equals(dbName, other.dbName, StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
private struct CachedInfo
|
||||
{
|
||||
public bool IsAzure;
|
||||
public DateTime LastUpdate;
|
||||
public bool IsSqlDw;
|
||||
}
|
||||
|
||||
private const int _maxCacheSize = 1024;
|
||||
private const int _deleteBatchSize = 512;
|
||||
private const int MinimalQueryTimeoutSecondsForAzure = 300;
|
||||
|
||||
private ConcurrentDictionary<CacheKey, CachedInfo> _cache;
|
||||
private object _cacheLock;
|
||||
|
||||
/// <summary>
|
||||
/// Internal constructor for testing purposes. For all code use, please use the <see cref="CachedServerInfo.Instance"/>
|
||||
/// default instance.
|
||||
/// </summary>
|
||||
internal CachedServerInfo()
|
||||
{
|
||||
_cache = new ConcurrentDictionary<CacheKey, CachedInfo>();
|
||||
_cacheLock = new object();
|
||||
}
|
||||
|
||||
public int GetQueryTimeoutSeconds(IDbConnection connection)
|
||||
{
|
||||
SqlConnectionStringBuilder connStringBuilder = SafeGetConnectionStringFromConnection(connection);
|
||||
return GetQueryTimeoutSeconds(connStringBuilder);
|
||||
}
|
||||
|
||||
public int GetQueryTimeoutSeconds(SqlConnectionStringBuilder builder)
|
||||
{
|
||||
//keep existing behavior and return the default ambient settings
|
||||
//if the provided data source is null or whitespace, or the original
|
||||
//setting is already 0 which means no limit.
|
||||
int originalValue = AmbientSettings.QueryTimeoutSeconds;
|
||||
if (builder == null || string.IsNullOrWhiteSpace(builder.DataSource)
|
||||
|| (originalValue == 0))
|
||||
{
|
||||
return originalValue;
|
||||
}
|
||||
|
||||
CachedInfo info;
|
||||
bool hasFound = TryGetCacheValue(builder, out info);
|
||||
|
||||
if (hasFound && info.IsAzure
|
||||
&& originalValue < MinimalQueryTimeoutSecondsForAzure)
|
||||
{
|
||||
return MinimalQueryTimeoutSecondsForAzure;
|
||||
}
|
||||
else
|
||||
{
|
||||
return originalValue;
|
||||
}
|
||||
}
|
||||
|
||||
public void AddOrUpdateIsCloud(IDbConnection connection, bool isCloud)
|
||||
{
|
||||
AddOrUpdateCache(connection, isCloud, CacheVariable.IsCloud);
|
||||
}
|
||||
|
||||
public void AddOrUpdateIsAzure(IDbConnection connection, bool isAzure)
|
||||
{
|
||||
AddOrUpdateCache(connection, isAzure, CacheVariable.IsAzure);
|
||||
}
|
||||
|
||||
public void AddOrUpdateIsSqlDw(IDbConnection connection, bool isSqlDw)
|
||||
{
|
||||
AddOrUpdateCache(connection, isSqlDw, CacheVariable.IsSqlDw);
|
||||
}
|
||||
|
||||
private void AddOrUpdateCache(IDbConnection connection, bool newState, CacheVariable cacheVar)
|
||||
{
|
||||
Validate.IsNotNull(nameof(connection), connection);
|
||||
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connection.ConnectionString);
|
||||
AddOrUpdateCache(builder, newState, cacheVar);
|
||||
}
|
||||
|
||||
internal void AddOrUpdateCache(SqlConnectionStringBuilder builder, bool newState, CacheVariable cacheVar)
|
||||
{
|
||||
Validate.IsNotNull(nameof(builder), builder);
|
||||
Validate.IsNotNullOrWhitespaceString(nameof(builder) + ".DataSource", builder.DataSource);
|
||||
CachedInfo info;
|
||||
bool hasFound = TryGetCacheValue(builder, out info);
|
||||
|
||||
if ((cacheVar == CacheVariable.IsSqlDw && hasFound && info.IsSqlDw == newState) ||
|
||||
(cacheVar == CacheVariable.IsAzure && hasFound && info.IsAzure == newState))
|
||||
{
|
||||
// No change needed
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
lock (_cacheLock)
|
||||
{
|
||||
// Clean older keys, update info, and add this back into the cache
|
||||
CacheKey key = new CacheKey(builder);
|
||||
CleanupCache(key);
|
||||
|
||||
if (cacheVar == CacheVariable.IsSqlDw)
|
||||
{
|
||||
info.IsSqlDw = newState;
|
||||
}
|
||||
else if (cacheVar == CacheVariable.IsAzure)
|
||||
{
|
||||
info.IsAzure = newState;
|
||||
}
|
||||
info.LastUpdate = DateTime.UtcNow;
|
||||
_cache.AddOrUpdate(key, info, (k, oldValue) => info);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void CleanupCache(CacheKey newKey)
|
||||
{
|
||||
if (!_cache.ContainsKey(newKey))
|
||||
{
|
||||
//delete a batch of old elements when we try to add a new one and
|
||||
//the capacity limitation is hit
|
||||
if (_cache.Keys.Count > _maxCacheSize - 1)
|
||||
{
|
||||
var keysToDelete = _cache
|
||||
.OrderBy(x => x.Value.LastUpdate)
|
||||
.Take(_deleteBatchSize)
|
||||
.Select(pair => pair.Key);
|
||||
|
||||
foreach (CacheKey key in keysToDelete)
|
||||
{
|
||||
CachedInfo info;
|
||||
_cache.TryRemove(key, out info);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool TryGetIsSqlDw(IDbConnection connection, out bool isSqlDw)
|
||||
{
|
||||
Validate.IsNotNull(nameof(connection), connection);
|
||||
|
||||
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connection.ConnectionString);
|
||||
return TryGetIsSqlDw(builder, out isSqlDw);
|
||||
}
|
||||
|
||||
public bool TryGetIsSqlDw(SqlConnectionStringBuilder builder, out bool isSqlDw)
|
||||
{
|
||||
Validate.IsNotNull(nameof(builder), builder);
|
||||
Validate.IsNotNullOrWhitespaceString(nameof(builder) + ".DataSource", builder.DataSource);
|
||||
CachedInfo info;
|
||||
bool hasFound = TryGetCacheValue(builder, out info);
|
||||
|
||||
if(hasFound)
|
||||
{
|
||||
isSqlDw = info.IsSqlDw;
|
||||
return true;
|
||||
}
|
||||
|
||||
isSqlDw = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
private static SqlConnectionStringBuilder SafeGetConnectionStringFromConnection(IDbConnection connection)
|
||||
{
|
||||
if (connection == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connection.ConnectionString);
|
||||
return builder;
|
||||
}
|
||||
catch
|
||||
{
|
||||
Logger.Instance.Write(LogLevel.Error, String.Format(Resources.FailedToParseConnectionString, connection.ConnectionString));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private bool TryGetCacheValue(SqlConnectionStringBuilder builder, out CachedInfo value)
|
||||
{
|
||||
CacheKey key = new CacheKey(builder);
|
||||
return _cache.TryGetValue(key, out value);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
/// <summary>
|
||||
/// Contains common constants used throughout ReliableConnection code.
|
||||
/// </summary>
|
||||
internal static class Constants
|
||||
{
|
||||
internal const int UndefinedErrorCode = 0;
|
||||
|
||||
internal const string Local = "(local)";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,214 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Globalization;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
/// <summary>
|
||||
/// This class is used to encapsulate all the information needed by the DataSchemaErrorTaskService to create a corresponding entry in the Visual Studio Error List.
|
||||
/// A component should add this Error Object to the <see cref="ErrorManager"/> for such purpose.
|
||||
/// Errors and their children are expected to be thread-safe. Ideally, this means that
|
||||
/// the objects are just data-transfer-objects initialized during construction.
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
internal class DataSchemaError
|
||||
{
|
||||
internal const string DefaultPrefix = "SQL";
|
||||
private const int MaxErrorCode = 99999;
|
||||
protected const int UndefinedErrorCode = 0;
|
||||
|
||||
public DataSchemaError() : this(string.Empty, ErrorSeverity.Unknown)
|
||||
{
|
||||
}
|
||||
|
||||
public DataSchemaError(string message, ErrorSeverity severity)
|
||||
: this(message, string.Empty, severity)
|
||||
{
|
||||
}
|
||||
|
||||
public DataSchemaError(string message, Exception innerException, ErrorSeverity severity)
|
||||
: this(message, innerException, string.Empty, 0, severity)
|
||||
{
|
||||
}
|
||||
|
||||
public DataSchemaError(string message, string document, ErrorSeverity severity)
|
||||
: this(message, document, 0, 0, DefaultPrefix, UndefinedErrorCode, severity)
|
||||
{
|
||||
}
|
||||
|
||||
public DataSchemaError(string message, string document, int errorCode, ErrorSeverity severity)
|
||||
: this(message, document, 0, 0, DefaultPrefix, errorCode, severity)
|
||||
{
|
||||
}
|
||||
|
||||
public DataSchemaError(string message, string document, int line, int column, ErrorSeverity severity)
|
||||
: this(message, document,line, column, DefaultPrefix, UndefinedErrorCode, severity)
|
||||
{
|
||||
}
|
||||
|
||||
public DataSchemaError(DataSchemaError source, ErrorSeverity severity)
|
||||
: this(source.Message, source.Document, source.Line, source.Column, source.Prefix, source.ErrorCode, severity)
|
||||
{
|
||||
}
|
||||
|
||||
public DataSchemaError(
|
||||
Exception exception,
|
||||
string prefix,
|
||||
int errorCode,
|
||||
ErrorSeverity severity)
|
||||
: this(exception, string.Empty, 0, 0, prefix, errorCode, severity)
|
||||
{
|
||||
}
|
||||
|
||||
public DataSchemaError(
|
||||
string message,
|
||||
Exception exception,
|
||||
string prefix,
|
||||
int errorCode,
|
||||
ErrorSeverity severity)
|
||||
: this(message, exception, string.Empty, 0, 0, prefix, errorCode, severity)
|
||||
{
|
||||
}
|
||||
|
||||
public DataSchemaError(
|
||||
Exception exception,
|
||||
string document,
|
||||
int line,
|
||||
int column,
|
||||
string prefix,
|
||||
int errorCode,
|
||||
ErrorSeverity severity)
|
||||
: this(exception.Message, exception, document, line, column, prefix, errorCode, severity)
|
||||
{
|
||||
}
|
||||
|
||||
public DataSchemaError(
|
||||
string message,
|
||||
string document,
|
||||
int line,
|
||||
int column,
|
||||
string prefix,
|
||||
int errorCode,
|
||||
ErrorSeverity severity)
|
||||
: this(message, null, document, line, column, prefix, errorCode, severity)
|
||||
{
|
||||
}
|
||||
|
||||
public DataSchemaError(
|
||||
string message,
|
||||
Exception exception,
|
||||
string document,
|
||||
int line,
|
||||
int column,
|
||||
string prefix,
|
||||
int errorCode,
|
||||
ErrorSeverity severity)
|
||||
{
|
||||
if (errorCode > MaxErrorCode || errorCode < 0)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("errorCode");
|
||||
}
|
||||
|
||||
Document = document;
|
||||
Severity = severity;
|
||||
Line = line;
|
||||
Column = column;
|
||||
Message = message;
|
||||
Exception = exception;
|
||||
|
||||
ErrorCode = errorCode;
|
||||
Prefix = prefix;
|
||||
IsPriorityEditable = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The filename of the error. It corresponds to the File column on the Visual Studio Error List window.
|
||||
/// </summary>
|
||||
public string Document { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The severity of the error
|
||||
/// </summary>
|
||||
public ErrorSeverity Severity { get; private set; }
|
||||
|
||||
public int ErrorCode { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Line Number of the error
|
||||
/// </summary>
|
||||
public int Line { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Column Number of the error
|
||||
/// </summary>
|
||||
public int Column { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Prefix of the error
|
||||
/// </summary>
|
||||
public string Prefix { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// If the error has any special help topic, this property may hold the ID to the same.
|
||||
/// </summary>
|
||||
public string HelpKeyword { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Exception associated with the error, or null
|
||||
/// </summary>
|
||||
public Exception Exception { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Message
|
||||
/// </summary>
|
||||
public string Message { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Should this message honor the "treat warnings as error" flag?
|
||||
/// </summary>
|
||||
public Boolean IsPriorityEditable { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Represents the error code used in MSBuild output. This is the prefix and the
|
||||
/// error code
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string BuildErrorCode
|
||||
{
|
||||
get { return FormatErrorCode(Prefix, ErrorCode); }
|
||||
}
|
||||
|
||||
internal Boolean IsBuildErrorCodeDefined
|
||||
{
|
||||
get { return (ErrorCode != UndefinedErrorCode); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// true if this error is being displayed in ErrorList. More of an Accounting Mechanism to be used internally.
|
||||
/// </summary>
|
||||
internal bool IsOnDisplay { get; set; }
|
||||
|
||||
internal static string FormatErrorCode(string prefix, int code)
|
||||
{
|
||||
return string.Format(
|
||||
CultureInfo.InvariantCulture,
|
||||
"{0}{1:d5}",
|
||||
prefix,
|
||||
code);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// String form of this error.
|
||||
/// NB: This is for debugging only.
|
||||
/// </summary>
|
||||
/// <returns>String form of the error.</returns>
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Format(CultureInfo.CurrentCulture, "{0} - {1}({2},{3}): {4}", FormatErrorCode(Prefix, ErrorCode), Document, Line, Column, Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using Microsoft.SqlTools.Hosting.Utility;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Wraps <see cref="IDbCommand"/> objects that could be a <see cref="SqlCommand"/> or
|
||||
/// a <see cref="ReliableSqlConnection.ReliableSqlCommand"/>, providing common methods across both.
|
||||
/// </summary>
|
||||
internal sealed class DbCommandWrapper
|
||||
{
|
||||
private readonly IDbCommand _command;
|
||||
private readonly bool _isReliableCommand;
|
||||
|
||||
public DbCommandWrapper(IDbCommand command)
|
||||
{
|
||||
Validate.IsNotNull(nameof(command), command);
|
||||
if (command is ReliableSqlConnection.ReliableSqlCommand)
|
||||
{
|
||||
_isReliableCommand = true;
|
||||
}
|
||||
else if (!(command is SqlCommand))
|
||||
{
|
||||
throw new InvalidOperationException(Resources.InvalidCommandType);
|
||||
}
|
||||
_command = command;
|
||||
}
|
||||
|
||||
public static bool IsSupportedCommand(IDbCommand command)
|
||||
{
|
||||
return command is ReliableSqlConnection.ReliableSqlCommand
|
||||
|| command is SqlCommand;
|
||||
}
|
||||
|
||||
|
||||
public event StatementCompletedEventHandler StatementCompleted
|
||||
{
|
||||
add
|
||||
{
|
||||
SqlCommand sqlCommand = GetAsSqlCommand();
|
||||
sqlCommand.StatementCompleted += value;
|
||||
}
|
||||
remove
|
||||
{
|
||||
SqlCommand sqlCommand = GetAsSqlCommand();
|
||||
sqlCommand.StatementCompleted -= value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets this as a SqlCommand by casting (if we know it is actually a SqlCommand)
|
||||
/// or by getting the underlying command (if it's a ReliableSqlCommand)
|
||||
/// </summary>
|
||||
private SqlCommand GetAsSqlCommand()
|
||||
{
|
||||
if (_isReliableCommand)
|
||||
{
|
||||
return ((ReliableSqlConnection.ReliableSqlCommand) _command).GetUnderlyingCommand();
|
||||
}
|
||||
return (SqlCommand) _command;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using Microsoft.SqlTools.Hosting.Utility;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
/// <summary>
|
||||
/// Wraps <see cref="IDbConnection"/> objects that could be a <see cref="SqlConnection"/> or
|
||||
/// a <see cref="ReliableSqlConnection"/>, providing common methods across both.
|
||||
/// </summary>
|
||||
internal sealed class DbConnectionWrapper
|
||||
{
|
||||
private readonly IDbConnection _connection;
|
||||
private readonly bool _isReliableConnection;
|
||||
|
||||
public DbConnectionWrapper(IDbConnection connection)
|
||||
{
|
||||
Validate.IsNotNull(nameof(connection), connection);
|
||||
if (connection is ReliableSqlConnection)
|
||||
{
|
||||
_isReliableConnection = true;
|
||||
}
|
||||
else if (!(connection is SqlConnection))
|
||||
{
|
||||
throw new InvalidOperationException(Resources.InvalidConnectionType);
|
||||
}
|
||||
|
||||
_connection = connection;
|
||||
}
|
||||
|
||||
public static bool IsSupportedConnection(IDbConnection connection)
|
||||
{
|
||||
return connection is ReliableSqlConnection
|
||||
|| connection is SqlConnection;
|
||||
}
|
||||
|
||||
public event SqlInfoMessageEventHandler InfoMessage
|
||||
{
|
||||
add
|
||||
{
|
||||
SqlConnection conn = GetAsSqlConnection();
|
||||
conn.InfoMessage += value;
|
||||
}
|
||||
remove
|
||||
{
|
||||
SqlConnection conn = GetAsSqlConnection();
|
||||
conn.InfoMessage -= value;
|
||||
}
|
||||
}
|
||||
|
||||
public string DataSource
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_isReliableConnection)
|
||||
{
|
||||
return ((ReliableSqlConnection) _connection).DataSource;
|
||||
}
|
||||
return ((SqlConnection)_connection).DataSource;
|
||||
}
|
||||
}
|
||||
|
||||
public string ServerVersion
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_isReliableConnection)
|
||||
{
|
||||
return ((ReliableSqlConnection)_connection).ServerVersion;
|
||||
}
|
||||
return ((SqlConnection)_connection).ServerVersion;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets this as a SqlConnection by casting (if we know it is actually a SqlConnection)
|
||||
/// or by getting the underlying connection (if it's a ReliableSqlConnection)
|
||||
/// </summary>
|
||||
public SqlConnection GetAsSqlConnection()
|
||||
{
|
||||
if (_isReliableConnection)
|
||||
{
|
||||
return ((ReliableSqlConnection) _connection).GetUnderlyingConnection();
|
||||
}
|
||||
return (SqlConnection) _connection;
|
||||
}
|
||||
|
||||
/*
|
||||
TODO - IClonable does not exist in .NET Core.
|
||||
/// <summary>
|
||||
/// Clones the connection and ensures it's opened.
|
||||
/// If it's a SqlConnection it will clone it,
|
||||
/// and for ReliableSqlConnection it will clone the underling connection.
|
||||
/// The reason the entire ReliableSqlConnection is not cloned is that it includes
|
||||
/// several callbacks and we don't want to try and handle deciding how to clone these
|
||||
/// yet.
|
||||
/// </summary>
|
||||
public SqlConnection CloneAndOpenConnection()
|
||||
{
|
||||
SqlConnection conn = GetAsSqlConnection();
|
||||
SqlConnection clonedConn = ((ICloneable) conn).Clone() as SqlConnection;
|
||||
clonedConn.Open();
|
||||
return clonedConn;
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
internal enum ErrorSeverity
|
||||
{
|
||||
Unknown = 0,
|
||||
Error,
|
||||
Warning,
|
||||
Message
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
/// <summary>
|
||||
/// This interface controls the lifetime of settings created as part of the
|
||||
/// top-of-stack API. Changes made to this context's AmbientData instance will
|
||||
/// flow to lower in the stack while this object is not disposed.
|
||||
/// </summary>
|
||||
internal interface IStackSettingsContext : IDisposable
|
||||
{
|
||||
AmbientSettings.AmbientData Settings { get; }
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,247 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
// This code is copied from the source described in the comment below.
|
||||
|
||||
// =======================================================================================
|
||||
// Microsoft Windows Server AppFabric Customer Advisory Team (CAT) Best Practices Series
|
||||
//
|
||||
// This sample is supplemental to the technical guidance published on the community
|
||||
// blog at http://blogs.msdn.com/appfabriccat/ and copied from
|
||||
// sqlmain ./sql/manageability/mfx/common/
|
||||
//
|
||||
// =======================================================================================
|
||||
// Copyright © 2012 Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
// EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
|
||||
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. YOU BEAR THE RISK OF USING IT.
|
||||
// =======================================================================================
|
||||
|
||||
// namespace Microsoft.AppFabricCAT.Samples.Azure.TransientFaultHandling.SqlAzure
|
||||
// namespace Microsoft.SqlServer.Management.Common
|
||||
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Data.SqlClient;
|
||||
using System.Diagnostics.Contracts;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides a reliable way of opening connections to and executing commands
|
||||
/// taking into account potential network unreliability and a requirement for connection retry.
|
||||
/// </summary>
|
||||
internal sealed partial class ReliableSqlConnection
|
||||
{
|
||||
internal class ReliableSqlCommand : DbCommand
|
||||
{
|
||||
private const int Dummy = 0;
|
||||
private readonly SqlCommand _command;
|
||||
|
||||
// connection is settable
|
||||
private ReliableSqlConnection _connection;
|
||||
|
||||
public ReliableSqlCommand()
|
||||
: this(null, Dummy)
|
||||
{
|
||||
}
|
||||
|
||||
public ReliableSqlCommand(ReliableSqlConnection connection)
|
||||
: this(connection, Dummy)
|
||||
{
|
||||
Contract.Requires(connection != null);
|
||||
}
|
||||
|
||||
private ReliableSqlCommand(ReliableSqlConnection connection, int dummy)
|
||||
{
|
||||
if (connection != null)
|
||||
{
|
||||
_connection = connection;
|
||||
_command = connection.CreateSqlCommand();
|
||||
}
|
||||
else
|
||||
{
|
||||
_command = new SqlCommand();
|
||||
}
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
_command.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the text command to run against the data source.
|
||||
/// </summary>
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2100:Review SQL queries for security vulnerabilities")]
|
||||
public override string CommandText
|
||||
{
|
||||
get { return _command.CommandText; }
|
||||
set { _command.CommandText = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the wait time before terminating the attempt to execute a command and generating an error.
|
||||
/// </summary>
|
||||
public override int CommandTimeout
|
||||
{
|
||||
get { return _command.CommandTimeout; }
|
||||
set { _command.CommandTimeout = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value that specifies how the <see cref="System.Data.Common.DbCommand.CommandText"/> property is interpreted.
|
||||
/// </summary>
|
||||
public override CommandType CommandType
|
||||
{
|
||||
get { return _command.CommandType; }
|
||||
set { _command.CommandType = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the <see cref="System.Data.Common.DbConnection"/> used by this <see cref="System.Data.Common.DbCommand"/>.
|
||||
/// </summary>
|
||||
protected override DbConnection DbConnection
|
||||
{
|
||||
get
|
||||
{
|
||||
return _connection;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
throw new ArgumentNullException("value");
|
||||
}
|
||||
|
||||
ReliableSqlConnection newConnection = value as ReliableSqlConnection;
|
||||
|
||||
if (newConnection == null)
|
||||
{
|
||||
throw new InvalidOperationException(Resources.OnlyReliableConnectionSupported);
|
||||
}
|
||||
|
||||
_connection = newConnection;
|
||||
_command.Connection = _connection._underlyingConnection;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the <see cref="System.Data.IDataParameterCollection"/>.
|
||||
/// </summary>
|
||||
protected override DbParameterCollection DbParameterCollection
|
||||
{
|
||||
get { return _command.Parameters; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the transaction within which the Command object of a .NET Framework data provider executes.
|
||||
/// </summary>
|
||||
protected override DbTransaction DbTransaction
|
||||
{
|
||||
get { return _command.Transaction; }
|
||||
set { _command.Transaction = value as SqlTransaction; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether the command object should be visible in a customized interface control.
|
||||
/// </summary>
|
||||
public override bool DesignTimeVisible
|
||||
{
|
||||
get { return _command.DesignTimeVisible; }
|
||||
set { _command.DesignTimeVisible = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets how command results are applied to the System.Data.DataRow when
|
||||
/// used by the System.Data.IDataAdapter.Update(System.Data.DataSet) method of
|
||||
/// a <see cref="System.Data.Common.DbDataAdapter"/>.
|
||||
/// </summary>
|
||||
public override UpdateRowSource UpdatedRowSource
|
||||
{
|
||||
get { return _command.UpdatedRowSource; }
|
||||
set { _command.UpdatedRowSource = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Attempts to cancels the execution of an <see cref="System.Data.IDbCommand"/>.
|
||||
/// </summary>
|
||||
public override void Cancel()
|
||||
{
|
||||
_command.Cancel();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new instance of an <see cref="System.Data.IDbDataParameter"/> object.
|
||||
/// </summary>
|
||||
/// <returns>An <see cref="IDbDataParameter"/> object.</returns>
|
||||
protected override DbParameter CreateDbParameter()
|
||||
{
|
||||
return _command.CreateParameter();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Executes an SQL statement against the Connection object of a .NET Framework
|
||||
/// data provider, and returns the number of rows affected.
|
||||
/// </summary>
|
||||
/// <returns>The number of rows affected.</returns>
|
||||
public override int ExecuteNonQuery()
|
||||
{
|
||||
ValidateConnectionIsSet();
|
||||
return _connection.ExecuteNonQuery(_command);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Executes the <see cref="System.Data.IDbCommand.CommandText"/> against the <see cref="System.Data.IDbCommand.Connection"/>
|
||||
/// and builds an <see cref="System.Data.IDataReader"/> using one of the <see cref="System.Data.CommandBehavior"/> values.
|
||||
/// </summary>
|
||||
/// <param name="behavior">One of the <see cref="System.Data.CommandBehavior"/> values.</param>
|
||||
/// <returns>An <see cref="System.Data.IDataReader"/> object.</returns>
|
||||
protected override DbDataReader ExecuteDbDataReader(CommandBehavior behavior)
|
||||
{
|
||||
ValidateConnectionIsSet();
|
||||
return (DbDataReader)_connection.ExecuteReader(_command, behavior);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Executes the query, and returns the first column of the first row in the
|
||||
/// resultset returned by the query. Extra columns or rows are ignored.
|
||||
/// </summary>
|
||||
/// <returns>The first column of the first row in the resultset.</returns>
|
||||
public override object ExecuteScalar()
|
||||
{
|
||||
ValidateConnectionIsSet();
|
||||
return _connection.ExecuteScalar(_command);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a prepared (or compiled) version of the command on the data source.
|
||||
/// </summary>
|
||||
public override void Prepare()
|
||||
{
|
||||
_command.Prepare();
|
||||
}
|
||||
|
||||
internal SqlCommand GetUnderlyingCommand()
|
||||
{
|
||||
return _command;
|
||||
}
|
||||
|
||||
internal void ValidateConnectionIsSet()
|
||||
{
|
||||
if (_connection == null)
|
||||
{
|
||||
throw new InvalidOperationException(Resources.ConnectionPropertyNotSet);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,610 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
// This code is copied from the source described in the comment below.
|
||||
|
||||
// =======================================================================================
|
||||
// Microsoft Windows Server AppFabric Customer Advisory Team (CAT) Best Practices Series
|
||||
//
|
||||
// This sample is supplemental to the technical guidance published on the community
|
||||
// blog at http://blogs.msdn.com/appfabriccat/ and copied from
|
||||
// sqlmain ./sql/manageability/mfx/common/
|
||||
//
|
||||
// =======================================================================================
|
||||
// Copyright © 2012 Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
// EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
|
||||
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. YOU BEAR THE RISK OF USING IT.
|
||||
// =======================================================================================
|
||||
|
||||
// namespace Microsoft.AppFabricCAT.Samples.Azure.TransientFaultHandling.SqlAzure
|
||||
// namespace Microsoft.SqlServer.Management.Common
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Data.SqlClient;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.SqlTools.Hosting.Utility;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides a reliable way of opening connections to and executing commands
|
||||
/// taking into account potential network unreliability and a requirement for connection retry.
|
||||
/// </summary>
|
||||
internal sealed partial class ReliableSqlConnection : DbConnection, IDisposable
|
||||
{
|
||||
private const string QueryAzureSessionId = "SELECT CONVERT(NVARCHAR(36), CONTEXT_INFO())";
|
||||
|
||||
private readonly SqlConnection _underlyingConnection;
|
||||
private readonly RetryPolicy _connectionRetryPolicy;
|
||||
private RetryPolicy _commandRetryPolicy;
|
||||
private Guid _azureSessionId;
|
||||
private bool _isSqlDwDatabase;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the ReliableSqlConnection class with a given connection string
|
||||
/// and a policy defining whether to retry a request if the connection fails to be opened or a command
|
||||
/// fails to be successfully executed.
|
||||
/// </summary>
|
||||
/// <param name="connectionString">The connection string used to open the SQL Azure database.</param>
|
||||
/// <param name="connectionRetryPolicy">The retry policy defining whether to retry a request if a connection fails to be established.</param>
|
||||
/// <param name="commandRetryPolicy">The retry policy defining whether to retry a request if a command fails to be executed.</param>
|
||||
public ReliableSqlConnection(string connectionString, RetryPolicy connectionRetryPolicy, RetryPolicy commandRetryPolicy)
|
||||
{
|
||||
_underlyingConnection = new SqlConnection(connectionString);
|
||||
_connectionRetryPolicy = connectionRetryPolicy ?? RetryPolicyFactory.CreateNoRetryPolicy();
|
||||
_commandRetryPolicy = commandRetryPolicy ?? RetryPolicyFactory.CreateNoRetryPolicy();
|
||||
|
||||
_underlyingConnection.StateChange += OnConnectionStateChange;
|
||||
_connectionRetryPolicy.RetryOccurred += RetryConnectionCallback;
|
||||
_commandRetryPolicy.RetryOccurred += RetryCommandCallback;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Performs application-defined tasks associated with freeing, releasing, or
|
||||
/// resetting managed and unmanaged resources.
|
||||
/// </summary>
|
||||
/// <param name="disposing">A flag indicating that managed resources must be released.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
if (_connectionRetryPolicy != null)
|
||||
{
|
||||
_connectionRetryPolicy.RetryOccurred -= RetryConnectionCallback;
|
||||
}
|
||||
|
||||
if (_commandRetryPolicy != null)
|
||||
{
|
||||
_commandRetryPolicy.RetryOccurred -= RetryCommandCallback;
|
||||
}
|
||||
|
||||
_underlyingConnection.StateChange -= OnConnectionStateChange;
|
||||
if (_underlyingConnection.State == ConnectionState.Open)
|
||||
{
|
||||
_underlyingConnection.Close();
|
||||
}
|
||||
|
||||
_underlyingConnection.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines if a connection is being made to a SQL DW database.
|
||||
/// </summary>
|
||||
/// <param name="conn">A connection object.</param>
|
||||
private bool IsSqlDwConnection(IDbConnection conn)
|
||||
{
|
||||
//Set the connection only if it has not been set earlier.
|
||||
//This is assuming that it is highly unlikely for a connection to change between instances.
|
||||
//Hence any subsequent calls to this method will just return the cached value and not
|
||||
//verify again if this is a SQL DW database connection or not.
|
||||
if (!CachedServerInfo.Instance.TryGetIsSqlDw(conn, out _isSqlDwDatabase))
|
||||
{
|
||||
_isSqlDwDatabase = ReliableConnectionHelper.IsSqlDwDatabase(conn);
|
||||
CachedServerInfo.Instance.AddOrUpdateIsSqlDw(conn, _isSqlDwDatabase);;
|
||||
}
|
||||
|
||||
return _isSqlDwDatabase;
|
||||
}
|
||||
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2100:Review SQL queries for security vulnerabilities")]
|
||||
internal static void SetLockAndCommandTimeout(IDbConnection conn)
|
||||
{
|
||||
Validate.IsNotNull(nameof(conn), conn);
|
||||
|
||||
// Make sure we use the underlying connection as ReliableConnection.Open also calls
|
||||
// this method
|
||||
ReliableSqlConnection reliableConn = conn as ReliableSqlConnection;
|
||||
if (reliableConn != null)
|
||||
{
|
||||
conn = reliableConn._underlyingConnection;
|
||||
}
|
||||
|
||||
const string setLockTimeout = @"set LOCK_TIMEOUT {0}";
|
||||
|
||||
using (IDbCommand cmd = conn.CreateCommand())
|
||||
{
|
||||
cmd.CommandText = string.Format(CultureInfo.InvariantCulture, setLockTimeout, AmbientSettings.LockTimeoutMilliSeconds);
|
||||
cmd.CommandType = CommandType.Text;
|
||||
cmd.CommandTimeout = CachedServerInfo.Instance.GetQueryTimeoutSeconds(conn);
|
||||
cmd.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
|
||||
internal static void SetDefaultAnsiSettings(IDbConnection conn, bool isSqlDw)
|
||||
{
|
||||
Validate.IsNotNull(nameof(conn), conn);
|
||||
|
||||
// Make sure we use the underlying connection as ReliableConnection.Open also calls
|
||||
// this method
|
||||
ReliableSqlConnection reliableConn = conn as ReliableSqlConnection;
|
||||
if (reliableConn != null)
|
||||
{
|
||||
conn = reliableConn._underlyingConnection;
|
||||
}
|
||||
|
||||
// Configure the connection with proper ANSI settings and lock timeout
|
||||
using (IDbCommand cmd = conn.CreateCommand())
|
||||
{
|
||||
cmd.CommandTimeout = CachedServerInfo.Instance.GetQueryTimeoutSeconds(conn);
|
||||
if (!isSqlDw)
|
||||
{
|
||||
cmd.CommandText = @"SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
|
||||
SET NUMERIC_ROUNDABORT OFF;";
|
||||
}
|
||||
else
|
||||
{
|
||||
cmd.CommandText = @"SET ANSI_NULLS ON; SET ANSI_PADDING ON; SET ANSI_WARNINGS ON; SET ARITHABORT ON; SET CONCAT_NULL_YIELDS_NULL ON; SET QUOTED_IDENTIFIER ON;"; //SQL DW does not support NUMERIC_ROUNDABORT
|
||||
}
|
||||
cmd.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the connection string for opening a connection to the SQL Azure database.
|
||||
/// </summary>
|
||||
public override string ConnectionString
|
||||
{
|
||||
get { return _underlyingConnection.ConnectionString; }
|
||||
set { _underlyingConnection.ConnectionString = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the policy which decides whether to retry a connection request, based on how many
|
||||
/// times the request has been made and the reason for the last failure.
|
||||
/// </summary>
|
||||
public RetryPolicy ConnectionRetryPolicy
|
||||
{
|
||||
get { return _connectionRetryPolicy; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the policy which decides whether to retry a command, based on how many
|
||||
/// times the request has been made and the reason for the last failure.
|
||||
/// </summary>
|
||||
public RetryPolicy CommandRetryPolicy
|
||||
{
|
||||
get { return _commandRetryPolicy; }
|
||||
set
|
||||
{
|
||||
Validate.IsNotNull(nameof(value), value);
|
||||
|
||||
if (_commandRetryPolicy != null)
|
||||
{
|
||||
_commandRetryPolicy.RetryOccurred -= RetryCommandCallback;
|
||||
}
|
||||
|
||||
_commandRetryPolicy = value;
|
||||
_commandRetryPolicy.RetryOccurred += RetryCommandCallback;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the server name from the underlying connection.
|
||||
/// </summary>
|
||||
public override string DataSource
|
||||
{
|
||||
get { return _underlyingConnection.DataSource; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the server version from the underlying connection.
|
||||
/// </summary>
|
||||
public override string ServerVersion
|
||||
{
|
||||
get { return _underlyingConnection.ServerVersion; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// If the underlying SqlConnection absolutely has to be accessed, for instance
|
||||
/// to pass to external APIs that require this type of connection, then this
|
||||
/// can be used.
|
||||
/// </summary>
|
||||
/// <returns><see cref="SqlConnection"/></returns>
|
||||
public SqlConnection GetUnderlyingConnection()
|
||||
{
|
||||
return _underlyingConnection;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Begins a database transaction with the specified System.Data.IsolationLevel value.
|
||||
/// </summary>
|
||||
/// <param name="level">One of the System.Data.IsolationLevel values.</param>
|
||||
/// <returns>An object representing the new transaction.</returns>
|
||||
protected override DbTransaction BeginDbTransaction(IsolationLevel level)
|
||||
{
|
||||
return _underlyingConnection.BeginTransaction(level);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Changes the current database for an open Connection object.
|
||||
/// </summary>
|
||||
/// <param name="databaseName">The name of the database to use in place of the current database.</param>
|
||||
public override void ChangeDatabase(string databaseName)
|
||||
{
|
||||
_underlyingConnection.ChangeDatabase(databaseName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Opens a database connection with the settings specified by the ConnectionString
|
||||
/// property of the provider-specific Connection object.
|
||||
/// </summary>
|
||||
public override void Open()
|
||||
{
|
||||
// Check if retry policy was specified, if not, disable retries by executing the Open method using RetryPolicy.NoRetry.
|
||||
_connectionRetryPolicy.ExecuteAction(() =>
|
||||
{
|
||||
if (_underlyingConnection.State != ConnectionState.Open)
|
||||
{
|
||||
_underlyingConnection.Open();
|
||||
}
|
||||
SetLockAndCommandTimeout(_underlyingConnection);
|
||||
SetDefaultAnsiSettings(_underlyingConnection, IsSqlDwConnection(_underlyingConnection));
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Opens a database connection with the settings specified by the ConnectionString
|
||||
/// property of the provider-specific Connection object.
|
||||
/// </summary>
|
||||
public override Task OpenAsync(CancellationToken token)
|
||||
{
|
||||
// Make sure that the token isn't cancelled before we try
|
||||
if (token.IsCancellationRequested)
|
||||
{
|
||||
return Task.FromCanceled(token);
|
||||
}
|
||||
|
||||
// Check if retry policy was specified, if not, disable retries by executing the Open method using RetryPolicy.NoRetry.
|
||||
try
|
||||
{
|
||||
return _connectionRetryPolicy.ExecuteAction(async () =>
|
||||
{
|
||||
if (_underlyingConnection.State != ConnectionState.Open)
|
||||
{
|
||||
await _underlyingConnection.OpenAsync(token);
|
||||
}
|
||||
SetLockAndCommandTimeout(_underlyingConnection);
|
||||
SetDefaultAnsiSettings(_underlyingConnection, IsSqlDwConnection(_underlyingConnection));
|
||||
});
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return Task.FromException(e);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Closes the connection to the database.
|
||||
/// </summary>
|
||||
public override void Close()
|
||||
{
|
||||
_underlyingConnection.Close();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the time to wait while trying to establish a connection before terminating
|
||||
/// the attempt and generating an error.
|
||||
/// </summary>
|
||||
public override int ConnectionTimeout
|
||||
{
|
||||
get { return _underlyingConnection.ConnectionTimeout; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates and returns an object implementing the IDbCommand interface which is associated
|
||||
/// with the underlying SqlConnection.
|
||||
/// </summary>
|
||||
/// <returns>A <see cref="IDbCommand"/> object.</returns>
|
||||
protected override DbCommand CreateDbCommand()
|
||||
{
|
||||
return CreateReliableCommand();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates and returns an object implementing the IDbCommand interface which is associated
|
||||
/// with the underlying SqlConnection.
|
||||
/// </summary>
|
||||
/// <returns>A <see cref="SqlCommand"/> object.</returns>
|
||||
public SqlCommand CreateSqlCommand()
|
||||
{
|
||||
return _underlyingConnection.CreateCommand();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the name of the current database or the database to be used after a
|
||||
/// connection is opened.
|
||||
/// </summary>
|
||||
public override string Database
|
||||
{
|
||||
get { return _underlyingConnection.Database; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the current state of the connection.
|
||||
/// </summary>
|
||||
public override ConnectionState State
|
||||
{
|
||||
get { return _underlyingConnection.State; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds an info message event listener.
|
||||
/// </summary>
|
||||
/// <param name="handler">An info message event listener.</param>
|
||||
public void AddInfoMessageHandler(SqlInfoMessageEventHandler handler)
|
||||
{
|
||||
_underlyingConnection.InfoMessage += handler;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes an info message event listener.
|
||||
/// </summary>
|
||||
/// <param name="handler">An info message event listener.</param>
|
||||
public void RemoveInfoMessageHandler(SqlInfoMessageEventHandler handler)
|
||||
{
|
||||
_underlyingConnection.InfoMessage -= handler;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clears underlying connection pool.
|
||||
/// </summary>
|
||||
public void ClearPool()
|
||||
{
|
||||
if (_underlyingConnection != null)
|
||||
{
|
||||
SqlConnection.ClearPool(_underlyingConnection);
|
||||
}
|
||||
}
|
||||
|
||||
private void RetryCommandCallback(RetryState retryState)
|
||||
{
|
||||
RetryPolicyUtils.RaiseSchemaAmbientRetryMessage(retryState, SqlSchemaModelErrorCodes.ServiceActions.CommandRetry, _azureSessionId);
|
||||
}
|
||||
|
||||
private void RetryConnectionCallback(RetryState retryState)
|
||||
{
|
||||
RetryPolicyUtils.RaiseSchemaAmbientRetryMessage(retryState, SqlSchemaModelErrorCodes.ServiceActions.ConnectionRetry, _azureSessionId);
|
||||
}
|
||||
|
||||
public void OnConnectionStateChange(object sender, StateChangeEventArgs e)
|
||||
{
|
||||
SqlConnection conn = (SqlConnection)sender;
|
||||
switch (e.CurrentState)
|
||||
{
|
||||
case ConnectionState.Open:
|
||||
RetrieveSessionId();
|
||||
break;
|
||||
case ConnectionState.Broken:
|
||||
case ConnectionState.Closed:
|
||||
_azureSessionId = Guid.Empty;
|
||||
break;
|
||||
case ConnectionState.Connecting:
|
||||
case ConnectionState.Executing:
|
||||
case ConnectionState.Fetching:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void RetrieveSessionId()
|
||||
{
|
||||
try
|
||||
{
|
||||
using (IDbCommand command = CreateReliableCommand())
|
||||
{
|
||||
IDbConnection connection = command.Connection;
|
||||
if (!IsSqlDwConnection(connection))
|
||||
{
|
||||
command.CommandText = QueryAzureSessionId;
|
||||
object result = command.ExecuteScalar();
|
||||
|
||||
// Only returns a session id for SQL Azure
|
||||
if (DBNull.Value != result)
|
||||
{
|
||||
string sessionId = (string)command.ExecuteScalar();
|
||||
_azureSessionId = new Guid(sessionId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (SqlException exception)
|
||||
{
|
||||
Logger.Instance.Write(LogLevel.Error, Resources.UnableToRetrieveAzureSessionId + exception.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates and returns a ReliableSqlCommand object associated
|
||||
/// with the underlying SqlConnection.
|
||||
/// </summary>
|
||||
/// <returns>A <see cref="ReliableSqlCommand"/> object.</returns>
|
||||
private ReliableSqlCommand CreateReliableCommand()
|
||||
{
|
||||
return new ReliableSqlCommand(this);
|
||||
}
|
||||
|
||||
private void VerifyConnectionOpen(IDbCommand command)
|
||||
{
|
||||
// Verify whether or not the connection is valid and is open. This code may be retried therefore
|
||||
// it is important to ensure that a connection is re-established should it have previously failed.
|
||||
if (command.Connection == null)
|
||||
{
|
||||
command.Connection = this;
|
||||
}
|
||||
|
||||
if (command.Connection.State != ConnectionState.Open)
|
||||
{
|
||||
SqlConnection.ClearPool(_underlyingConnection);
|
||||
|
||||
command.Connection.Open();
|
||||
}
|
||||
}
|
||||
|
||||
private IDataReader ExecuteReader(IDbCommand command, CommandBehavior behavior)
|
||||
{
|
||||
Tuple<string, bool>[] sessionSettings = null;
|
||||
return _commandRetryPolicy.ExecuteAction<IDataReader>(() =>
|
||||
{
|
||||
VerifyConnectionOpen(command);
|
||||
sessionSettings = CacheOrReplaySessionSettings(command, sessionSettings);
|
||||
|
||||
return command.ExecuteReader(behavior);
|
||||
});
|
||||
}
|
||||
|
||||
// Because retry loses session settings, cache session settings or reply if the settings are already cached.
|
||||
internal Tuple<string, bool>[] CacheOrReplaySessionSettings(IDbCommand originalCommand, Tuple<string, bool>[] sessionSettings)
|
||||
{
|
||||
if (sessionSettings == null)
|
||||
{
|
||||
sessionSettings = QuerySessionSettings(originalCommand);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetSessionSettings(originalCommand.Connection, sessionSettings);
|
||||
}
|
||||
|
||||
return sessionSettings;
|
||||
}
|
||||
|
||||
private object ExecuteScalar(IDbCommand command)
|
||||
{
|
||||
Tuple<string,bool>[] sessionSettings = null;
|
||||
return _commandRetryPolicy.ExecuteAction(() =>
|
||||
{
|
||||
VerifyConnectionOpen(command);
|
||||
sessionSettings = CacheOrReplaySessionSettings(command, sessionSettings);
|
||||
|
||||
return command.ExecuteScalar();
|
||||
});
|
||||
}
|
||||
|
||||
private Tuple<string, bool>[] QuerySessionSettings(IDbCommand originalCommand)
|
||||
{
|
||||
Tuple<string,bool>[] sessionSettings = new Tuple<string,bool>[2];
|
||||
|
||||
IDbConnection connection = originalCommand.Connection;
|
||||
if (IsSqlDwConnection(connection))
|
||||
{
|
||||
// SESSIONPROPERTY is not supported. Use default values for now
|
||||
sessionSettings[0] = Tuple.Create("ANSI_NULLS", true);
|
||||
sessionSettings[1] = Tuple.Create("QUOTED_IDENTIFIER", true);
|
||||
}
|
||||
else
|
||||
{
|
||||
using (IDbCommand localCommand = connection.CreateCommand())
|
||||
{
|
||||
// Executing a reader requires preservation of any pending transaction created by the calling command
|
||||
localCommand.Transaction = originalCommand.Transaction;
|
||||
localCommand.CommandText = "SELECT ISNULL(SESSIONPROPERTY ('ANSI_NULLS'), 0), ISNULL(SESSIONPROPERTY ('QUOTED_IDENTIFIER'), 1)";
|
||||
using (IDataReader reader = localCommand.ExecuteReader())
|
||||
{
|
||||
if (reader.Read())
|
||||
{
|
||||
sessionSettings[0] = Tuple.Create("ANSI_NULLS", ((int)reader[0] == 1));
|
||||
sessionSettings[1] = Tuple.Create("QUOTED_IDENTIFIER", ((int)reader[1] ==1));
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Assert(false, "Reader cannot be empty");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return sessionSettings;
|
||||
}
|
||||
|
||||
private void SetSessionSettings(IDbConnection connection, params Tuple<string, bool>[] settings)
|
||||
{
|
||||
List<string> setONOptions = new List<string>();
|
||||
List<string> setOFFOptions = new List<string>();
|
||||
if(settings != null)
|
||||
{
|
||||
foreach (Tuple<string, bool> setting in settings)
|
||||
{
|
||||
if (setting.Item2)
|
||||
{
|
||||
setONOptions.Add(setting.Item1);
|
||||
}
|
||||
else
|
||||
{
|
||||
setOFFOptions.Add(setting.Item1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SetSessionSettings(connection, setONOptions, "ON");
|
||||
SetSessionSettings(connection, setOFFOptions, "OFF");
|
||||
|
||||
}
|
||||
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2100:Review SQL queries for security vulnerabilities")]
|
||||
private static void SetSessionSettings(IDbConnection connection, List<string> sessionOptions, string onOff)
|
||||
{
|
||||
if (sessionOptions.Count > 0)
|
||||
{
|
||||
using (IDbCommand localCommand = connection.CreateCommand())
|
||||
{
|
||||
StringBuilder builder = new StringBuilder("SET ");
|
||||
for (int i = 0; i < sessionOptions.Count; i++)
|
||||
{
|
||||
if (i > 0)
|
||||
{
|
||||
builder.Append(',');
|
||||
}
|
||||
builder.Append(sessionOptions[i]);
|
||||
}
|
||||
builder.Append(" ");
|
||||
builder.Append(onOff);
|
||||
localCommand.CommandText = builder.ToString();
|
||||
localCommand.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private int ExecuteNonQuery(IDbCommand command)
|
||||
{
|
||||
Tuple<string, bool>[] sessionSettings = null;
|
||||
return _commandRetryPolicy.ExecuteAction<int>(() =>
|
||||
{
|
||||
VerifyConnectionOpen(command);
|
||||
sessionSettings = CacheOrReplaySessionSettings(command, sessionSettings);
|
||||
|
||||
return command.ExecuteNonQuery();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,157 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
/// <summary>
|
||||
/// Contains string resources used throughout ReliableConnection code.
|
||||
/// </summary>
|
||||
internal static class Resources
|
||||
{
|
||||
internal static string AmbientSettingFormat
|
||||
{
|
||||
get
|
||||
{
|
||||
return "{0}: {1}";
|
||||
}
|
||||
}
|
||||
|
||||
internal static string ConnectionPassedToIsCloudShouldBeOpen
|
||||
{
|
||||
get
|
||||
{
|
||||
return "connection passed to IsCloud should be open.";
|
||||
}
|
||||
}
|
||||
|
||||
internal static string ConnectionPropertyNotSet
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Connection property has not been initialized.";
|
||||
}
|
||||
}
|
||||
|
||||
internal static string ExceptionCannotBeRetried
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Exception cannot be retried because of err #{0}:{1}";
|
||||
}
|
||||
}
|
||||
|
||||
internal static string ErrorParsingConnectionString
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Error parsing connection string {0}";
|
||||
}
|
||||
}
|
||||
|
||||
internal static string FailedToCacheIsCloud
|
||||
{
|
||||
get
|
||||
{
|
||||
return "failed to cache the server property of IsAzure";
|
||||
}
|
||||
}
|
||||
|
||||
internal static string FailedToParseConnectionString
|
||||
{
|
||||
get
|
||||
{
|
||||
return "failed to parse the provided connection string: {0}";
|
||||
}
|
||||
}
|
||||
|
||||
internal static string IgnoreOnException
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Retry number {0}. Ignoring Exception: {1}";
|
||||
}
|
||||
}
|
||||
|
||||
internal static string InvalidCommandType
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Unsupported command object. Use SqlCommand or ReliableSqlCommand.";
|
||||
}
|
||||
}
|
||||
|
||||
internal static string InvalidConnectionType
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Unsupported connection object. Use SqlConnection or ReliableSqlConnection.";
|
||||
}
|
||||
}
|
||||
|
||||
internal static string LoggingAmbientSettings
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Logging Ambient Settings...";
|
||||
}
|
||||
}
|
||||
|
||||
internal static string Mode
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Mode";
|
||||
}
|
||||
}
|
||||
|
||||
internal static string OnlyReliableConnectionSupported
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Connection property can only be set to a value of type ReliableSqlConnection.";
|
||||
}
|
||||
}
|
||||
|
||||
internal static string RetryOnException
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Retry number {0}. Delaying {1} ms before next retry. Exception: {2}";
|
||||
}
|
||||
}
|
||||
|
||||
internal static string ThrottlingTypeInfo
|
||||
{
|
||||
get
|
||||
{
|
||||
return "ThrottlingTypeInfo";
|
||||
}
|
||||
}
|
||||
|
||||
internal static string UnableToAssignValue
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Unable to assign the value of type {0} to {1}";
|
||||
}
|
||||
}
|
||||
|
||||
internal static string UnableToRetrieveAzureSessionId
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Unable to retrieve Azure session-id.";
|
||||
}
|
||||
}
|
||||
|
||||
internal static string ServerInfoCacheMiss
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Server Info does not have the requested property in the cache";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
// This code is copied from the source described in the comment below.
|
||||
|
||||
// =======================================================================================
|
||||
// Microsoft Windows Server AppFabric Customer Advisory Team (CAT) Best Practices Series
|
||||
//
|
||||
// This sample is supplemental to the technical guidance published on the community
|
||||
// blog at http://blogs.msdn.com/appfabriccat/ and copied from
|
||||
// sqlmain ./sql/manageability/mfx/common/
|
||||
//
|
||||
// =======================================================================================
|
||||
// Copyright © 2012 Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
// EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
|
||||
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. YOU BEAR THE RISK OF USING IT.
|
||||
// =======================================================================================
|
||||
|
||||
// namespace Microsoft.SQL.CAT.BestPractices.SqlAzure.Framework
|
||||
// namespace Microsoft.SqlServer.Management.Common
|
||||
|
||||
using System;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines a arguments for event handler which will be invoked whenever a retry condition is encountered.
|
||||
/// </summary>
|
||||
internal sealed class RetryCallbackEventArgs : EventArgs
|
||||
{
|
||||
private readonly int _retryCount;
|
||||
private readonly Exception _exception;
|
||||
private readonly TimeSpan _delay;
|
||||
|
||||
public RetryCallbackEventArgs(int retryCount, Exception exception, TimeSpan delay)
|
||||
{
|
||||
_retryCount = retryCount;
|
||||
_exception = exception;
|
||||
_delay = delay;
|
||||
}
|
||||
|
||||
public TimeSpan Delay
|
||||
{
|
||||
get { return _delay; }
|
||||
}
|
||||
|
||||
public Exception Exception
|
||||
{
|
||||
get { return _exception; }
|
||||
}
|
||||
|
||||
public int RetryCount
|
||||
{
|
||||
get { return _retryCount; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
// This code is copied from the source described in the comment below.
|
||||
|
||||
// =======================================================================================
|
||||
// Microsoft Windows Server AppFabric Customer Advisory Team (CAT) Best Practices Series
|
||||
//
|
||||
// This sample is supplemental to the technical guidance published on the community
|
||||
// blog at http://blogs.msdn.com/appfabriccat/ and copied from
|
||||
// sqlmain ./sql/manageability/mfx/common/
|
||||
//
|
||||
// =======================================================================================
|
||||
// Copyright © 2012 Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
// EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
|
||||
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. YOU BEAR THE RISK OF USING IT.
|
||||
// =======================================================================================
|
||||
|
||||
// namespace Microsoft.SQL.CAT.BestPractices.SqlAzure.Framework
|
||||
// namespace Microsoft.SqlServer.Management.Common
|
||||
|
||||
using System;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
/// <summary>
|
||||
/// The special type of exception that provides managed exit from a retry loop. The user code can use this
|
||||
/// exception to notify the retry policy that no further retry attempts are required.
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
internal sealed class RetryLimitExceededException : Exception
|
||||
{
|
||||
internal RetryLimitExceededException() : base()
|
||||
{
|
||||
}
|
||||
|
||||
internal RetryLimitExceededException(string m, Exception e) : base(m, e)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System.Data.SqlClient;
|
||||
using Microsoft.SqlTools.Hosting.Utility;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
internal abstract partial class RetryPolicy
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides the error detection logic for temporary faults that are commonly found during data transfer.
|
||||
/// </summary>
|
||||
internal class DataTransferErrorDetectionStrategy : ErrorDetectionStrategyBase, IErrorDetectionStrategy
|
||||
{
|
||||
private static readonly DataTransferErrorDetectionStrategy instance = new DataTransferErrorDetectionStrategy();
|
||||
|
||||
public static DataTransferErrorDetectionStrategy Instance
|
||||
{
|
||||
get { return instance; }
|
||||
}
|
||||
|
||||
protected override bool CanRetrySqlException(SqlException sqlException)
|
||||
{
|
||||
// Enumerate through all errors found in the exception.
|
||||
foreach (SqlError err in sqlException.Errors)
|
||||
{
|
||||
RetryPolicyUtils.AppendThrottlingDataIfIsThrottlingError(sqlException, err);
|
||||
if (RetryPolicyUtils.IsNonRetryableDataTransferError(err.Number))
|
||||
{
|
||||
Logger.Instance.Write(LogLevel.Error, string.Format(Resources.ExceptionCannotBeRetried, err.Number, err.Message));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Default is to treat all SqlException as retriable.
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Data.SqlClient;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
internal abstract partial class RetryPolicy
|
||||
{
|
||||
public interface IErrorDetectionStrategy
|
||||
{
|
||||
/// <summary>
|
||||
/// Determines whether the specified exception represents a temporary failure that can be compensated by a retry.
|
||||
/// </summary>
|
||||
/// <param name="ex">The exception object to be verified.</param>
|
||||
/// <returns>True if the specified exception is considered as temporary, otherwise false.</returns>
|
||||
bool CanRetry(Exception ex);
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether the specified exception can be ignored.
|
||||
/// </summary>
|
||||
/// <param name="ex">The exception object to be verified.</param>
|
||||
/// <returns>True if the specified exception is considered as non-harmful.</returns>
|
||||
bool ShouldIgnoreError(Exception ex);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Base class with common retry logic. The core behavior for retrying non SqlExceptions is the same
|
||||
/// across retry policies
|
||||
/// </summary>
|
||||
internal abstract class ErrorDetectionStrategyBase : IErrorDetectionStrategy
|
||||
{
|
||||
public bool CanRetry(Exception ex)
|
||||
{
|
||||
if (ex != null)
|
||||
{
|
||||
SqlException sqlException;
|
||||
if ((sqlException = ex as SqlException) != null)
|
||||
{
|
||||
return CanRetrySqlException(sqlException);
|
||||
}
|
||||
if (ex is InvalidOperationException)
|
||||
{
|
||||
// Operations can throw this exception if the connection is killed before the write starts to the server
|
||||
// However if there's an inner SqlException it may be a CLR load failure or other non-transient error
|
||||
if (ex.InnerException != null
|
||||
&& ex.InnerException is SqlException)
|
||||
{
|
||||
return CanRetry(ex.InnerException);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (ex is TimeoutException)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool ShouldIgnoreError(Exception ex)
|
||||
{
|
||||
if (ex != null)
|
||||
{
|
||||
SqlException sqlException;
|
||||
if ((sqlException = ex as SqlException) != null)
|
||||
{
|
||||
return ShouldIgnoreSqlException(sqlException);
|
||||
}
|
||||
if (ex is InvalidOperationException)
|
||||
{
|
||||
// Operations can throw this exception if the connection is killed before the write starts to the server
|
||||
// However if there's an inner SqlException it may be a CLR load failure or other non-transient error
|
||||
if (ex.InnerException != null
|
||||
&& ex.InnerException is SqlException)
|
||||
{
|
||||
return ShouldIgnoreError(ex.InnerException);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected virtual bool ShouldIgnoreSqlException(SqlException sqlException)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
protected abstract bool CanRetrySqlException(SqlException sqlException);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System.Data.SqlClient;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
internal abstract partial class RetryPolicy
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides the error detection logic for temporary faults that are commonly found in SQL Azure.
|
||||
/// The same errors CAN occur on premise also, but they are not seen as often.
|
||||
/// </summary>
|
||||
internal sealed class NetworkConnectivityErrorDetectionStrategy : ErrorDetectionStrategyBase, IErrorDetectionStrategy
|
||||
{
|
||||
private static NetworkConnectivityErrorDetectionStrategy instance = new NetworkConnectivityErrorDetectionStrategy();
|
||||
|
||||
public static NetworkConnectivityErrorDetectionStrategy Instance
|
||||
{
|
||||
get { return instance; }
|
||||
}
|
||||
|
||||
protected override bool CanRetrySqlException(SqlException sqlException)
|
||||
{
|
||||
// Enumerate through all errors found in the exception.
|
||||
bool foundRetryableError = false;
|
||||
foreach (SqlError err in sqlException.Errors)
|
||||
{
|
||||
RetryPolicyUtils.AppendThrottlingDataIfIsThrottlingError(sqlException, err);
|
||||
if (!RetryPolicyUtils.IsRetryableNetworkConnectivityError(err.Number))
|
||||
{
|
||||
// If any error is not retryable then cannot retry
|
||||
return false;
|
||||
}
|
||||
foundRetryableError = true;
|
||||
}
|
||||
return foundRetryableError;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System.Data.SqlClient;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
internal abstract partial class RetryPolicy
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides the error detection logic for temporary faults that are commonly found in SQL Azure.
|
||||
/// This strategy is similar to SqlAzureTemporaryErrorDetectionStrategy, but it exposes ways
|
||||
/// to accept a certain exception and treat it as passing.
|
||||
/// For example, if we are retrying, and we get a failure that an object already exists, we might
|
||||
/// want to consider this as passing since the first execution that has timed out (or failed for some other temporary error)
|
||||
/// might have managed to create the object.
|
||||
/// </summary>
|
||||
internal class SqlAzureTemporaryAndIgnorableErrorDetectionStrategy : ErrorDetectionStrategyBase, IErrorDetectionStrategy
|
||||
{
|
||||
/// <summary>
|
||||
/// Azure error that can be ignored
|
||||
/// </summary>
|
||||
private readonly IList<int> ignorableAzureErrors = null;
|
||||
|
||||
public SqlAzureTemporaryAndIgnorableErrorDetectionStrategy(params int[] ignorableErrors)
|
||||
{
|
||||
this.ignorableAzureErrors = ignorableErrors;
|
||||
}
|
||||
|
||||
protected override bool CanRetrySqlException(SqlException sqlException)
|
||||
{
|
||||
// Enumerate through all errors found in the exception.
|
||||
bool foundRetryableError = false;
|
||||
foreach (SqlError err in sqlException.Errors)
|
||||
{
|
||||
RetryPolicyUtils.AppendThrottlingDataIfIsThrottlingError(sqlException, err);
|
||||
if (!RetryPolicyUtils.IsRetryableAzureError(err.Number))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
foundRetryableError = true;
|
||||
}
|
||||
return foundRetryableError;
|
||||
}
|
||||
|
||||
protected override bool ShouldIgnoreSqlException(SqlException sqlException)
|
||||
{
|
||||
int errorNumber = sqlException.Number;
|
||||
|
||||
if (ignorableAzureErrors == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return ignorableAzureErrors.Contains(errorNumber);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System.Data.SqlClient;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
internal abstract partial class RetryPolicy
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides the error detection logic for temporary faults that are commonly found in SQL Azure.
|
||||
/// The same errors CAN occur on premise also, but they are not seen as often.
|
||||
/// </summary>
|
||||
internal sealed class SqlAzureTemporaryErrorDetectionStrategy : ErrorDetectionStrategyBase, IErrorDetectionStrategy
|
||||
{
|
||||
private static SqlAzureTemporaryErrorDetectionStrategy instance = new SqlAzureTemporaryErrorDetectionStrategy();
|
||||
|
||||
public static SqlAzureTemporaryErrorDetectionStrategy Instance
|
||||
{
|
||||
get { return instance; }
|
||||
}
|
||||
|
||||
protected override bool CanRetrySqlException(SqlException sqlException)
|
||||
{
|
||||
// Enumerate through all errors found in the exception.
|
||||
bool foundRetryableError = false;
|
||||
foreach (SqlError err in sqlException.Errors)
|
||||
{
|
||||
RetryPolicyUtils.AppendThrottlingDataIfIsThrottlingError(sqlException, err);
|
||||
if (!RetryPolicyUtils.IsRetryableAzureError(err.Number))
|
||||
{
|
||||
// If any error is not retryable then cannot retry
|
||||
return false;
|
||||
}
|
||||
foundRetryableError = true;
|
||||
}
|
||||
return foundRetryableError;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,357 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.SqlClient;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
internal abstract partial class RetryPolicy
|
||||
{
|
||||
/// <summary>
|
||||
/// Implements an object holding the decoded reason code returned from SQL Azure when encountering throttling conditions.
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class ThrottlingReason
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns the error number that corresponds to throttling conditions reported by SQL Azure.
|
||||
/// </summary>
|
||||
public const int ThrottlingErrorNumber = 40501;
|
||||
|
||||
/// <summary>
|
||||
/// Gets an unknown throttling condition in the event the actual throttling condition cannot be determined.
|
||||
/// </summary>
|
||||
public static ThrottlingReason Unknown
|
||||
{
|
||||
get
|
||||
{
|
||||
var unknownCondition = new ThrottlingReason() { ThrottlingMode = ThrottlingMode.Unknown };
|
||||
unknownCondition.throttledResources.Add(Tuple.Create(ThrottledResourceType.Unknown, ThrottlingType.Unknown));
|
||||
|
||||
return unknownCondition;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Maintains a collection of key-value pairs where a key is resource type and a value is the type of throttling applied to the given resource type.
|
||||
/// </summary>
|
||||
private readonly IList<Tuple<ThrottledResourceType, ThrottlingType>> throttledResources = new List<Tuple<ThrottledResourceType, ThrottlingType>>(9);
|
||||
|
||||
/// <summary>
|
||||
/// Provides a compiled regular expression used for extracting the reason code from the error message.
|
||||
/// </summary>
|
||||
private static readonly Regex sqlErrorCodeRegEx = new Regex(@"Code:\s*(\d+)", RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the value that reflects the throttling mode in SQL Azure.
|
||||
/// </summary>
|
||||
public ThrottlingMode ThrottlingMode
|
||||
{
|
||||
get;
|
||||
private set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the list of resources in SQL Azure that were subject to throttling conditions.
|
||||
/// </summary>
|
||||
public IEnumerable<Tuple<ThrottledResourceType, ThrottlingType>> ThrottledResources
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.throttledResources;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines throttling conditions from the specified SQL exception.
|
||||
/// </summary>
|
||||
/// <param name="ex">The <see cref="SqlException"/> object containing information relevant to an error returned by SQL Server when encountering throttling conditions.</param>
|
||||
/// <returns>An instance of the object holding the decoded reason codes returned from SQL Azure upon encountering throttling conditions.</returns>
|
||||
public static ThrottlingReason FromException(SqlException ex)
|
||||
{
|
||||
if (ex != null)
|
||||
{
|
||||
foreach (SqlError error in ex.Errors)
|
||||
{
|
||||
if (error.Number == ThrottlingErrorNumber)
|
||||
{
|
||||
return FromError(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return Unknown;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines the throttling conditions from the specified SQL error.
|
||||
/// </summary>
|
||||
/// <param name="error">The <see cref="SqlError"/> object containing information relevant to a warning or error returned by SQL Server.</param>
|
||||
/// <returns>An instance of the object holding the decoded reason codes returned from SQL Azure when encountering throttling conditions.</returns>
|
||||
public static ThrottlingReason FromError(SqlError error)
|
||||
{
|
||||
if (error != null)
|
||||
{
|
||||
var match = sqlErrorCodeRegEx.Match(error.Message);
|
||||
int reasonCode = 0;
|
||||
|
||||
if (match.Success && Int32.TryParse(match.Groups[1].Value, out reasonCode))
|
||||
{
|
||||
return FromReasonCode(reasonCode);
|
||||
}
|
||||
}
|
||||
|
||||
return Unknown;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines the throttling conditions from the specified reason code.
|
||||
/// </summary>
|
||||
/// <param name="reasonCode">The reason code returned by SQL Azure which contains the throttling mode and the exceeded resource types.</param>
|
||||
/// <returns>An instance of the object holding the decoded reason codes returned from SQL Azure when encountering throttling conditions.</returns>
|
||||
public static ThrottlingReason FromReasonCode(int reasonCode)
|
||||
{
|
||||
if (reasonCode > 0)
|
||||
{
|
||||
// Decode throttling mode from the last 2 bits.
|
||||
ThrottlingMode throttlingMode = (ThrottlingMode)(reasonCode & 3);
|
||||
|
||||
var condition = new ThrottlingReason() { ThrottlingMode = throttlingMode };
|
||||
|
||||
// Shift 8 bits to truncate throttling mode.
|
||||
int groupCode = reasonCode >> 8;
|
||||
|
||||
// Determine throttling type for all well-known resources that may be subject to throttling conditions.
|
||||
condition.throttledResources.Add(Tuple.Create(ThrottledResourceType.PhysicalDatabaseSpace, (ThrottlingType)(groupCode & 3)));
|
||||
condition.throttledResources.Add(Tuple.Create(ThrottledResourceType.PhysicalLogSpace, (ThrottlingType)((groupCode = groupCode >> 2) & 3)));
|
||||
condition.throttledResources.Add(Tuple.Create(ThrottledResourceType.LogWriteIODelay, (ThrottlingType)((groupCode = groupCode >> 2) & 3)));
|
||||
condition.throttledResources.Add(Tuple.Create(ThrottledResourceType.DataReadIODelay, (ThrottlingType)((groupCode = groupCode >> 2) & 3)));
|
||||
condition.throttledResources.Add(Tuple.Create(ThrottledResourceType.CPU, (ThrottlingType)((groupCode = groupCode >> 2) & 3)));
|
||||
condition.throttledResources.Add(Tuple.Create(ThrottledResourceType.DatabaseSize, (ThrottlingType)((groupCode = groupCode >> 2) & 3)));
|
||||
condition.throttledResources.Add(Tuple.Create(ThrottledResourceType.Internal, (ThrottlingType)((groupCode = groupCode >> 2) & 3)));
|
||||
condition.throttledResources.Add(Tuple.Create(ThrottledResourceType.WorkerThreads, (ThrottlingType)((groupCode = groupCode >> 2) & 3)));
|
||||
condition.throttledResources.Add(Tuple.Create(ThrottledResourceType.Internal, (ThrottlingType)((groupCode = groupCode >> 2) & 3)));
|
||||
|
||||
return condition;
|
||||
}
|
||||
else
|
||||
{
|
||||
return Unknown;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether physical data file space throttling was reported by SQL Azure.
|
||||
/// </summary>
|
||||
public bool IsThrottledOnDataSpace
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.throttledResources.Where(x => x.Item1 == ThrottledResourceType.PhysicalDatabaseSpace).Count() > 0;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether physical log space throttling was reported by SQL Azure.
|
||||
/// </summary>
|
||||
public bool IsThrottledOnLogSpace
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.throttledResources.Where(x => x.Item1 == ThrottledResourceType.PhysicalLogSpace).Count() > 0;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether transaction activity throttling was reported by SQL Azure.
|
||||
/// </summary>
|
||||
public bool IsThrottledOnLogWrite
|
||||
{
|
||||
get { return this.throttledResources.Where(x => x.Item1 == ThrottledResourceType.LogWriteIODelay).Count() > 0; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether data read activity throttling was reported by SQL Azure.
|
||||
/// </summary>
|
||||
public bool IsThrottledOnDataRead
|
||||
{
|
||||
get { return this.throttledResources.Where(x => x.Item1 == ThrottledResourceType.DataReadIODelay).Count() > 0; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether CPU throttling was reported by SQL Azure.
|
||||
/// </summary>
|
||||
public bool IsThrottledOnCPU
|
||||
{
|
||||
get { return this.throttledResources.Where(x => x.Item1 == ThrottledResourceType.CPU).Count() > 0; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether database size throttling was reported by SQL Azure.
|
||||
/// </summary>
|
||||
public bool IsThrottledOnDatabaseSize
|
||||
{
|
||||
get { return this.throttledResources.Where(x => x.Item1 == ThrottledResourceType.DatabaseSize).Count() > 0; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether concurrent requests throttling was reported by SQL Azure.
|
||||
/// </summary>
|
||||
public bool IsThrottledOnWorkerThreads
|
||||
{
|
||||
get { return this.throttledResources.Where(x => x.Item1 == ThrottledResourceType.WorkerThreads).Count() > 0; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether throttling conditions were not determined with certainty.
|
||||
/// </summary>
|
||||
public bool IsUnknown
|
||||
{
|
||||
get { return ThrottlingMode == ThrottlingMode.Unknown; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a textual representation the current ThrottlingReason object including the information held with respect to throttled resources.
|
||||
/// </summary>
|
||||
/// <returns>A string that represents the current ThrottlingReason object.</returns>
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder result = new StringBuilder();
|
||||
|
||||
result.AppendFormat(Resources.Mode, ThrottlingMode);
|
||||
|
||||
var resources = this.throttledResources.Where(x => x.Item1 != ThrottledResourceType.Internal).
|
||||
Select<Tuple<ThrottledResourceType, ThrottlingType>, string>(x => String.Format(CultureInfo.CurrentCulture, Resources.ThrottlingTypeInfo, x.Item1, x.Item2)).
|
||||
OrderBy(x => x).ToArray();
|
||||
|
||||
result.Append(String.Join(", ", resources));
|
||||
|
||||
return result.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
#region ThrottlingMode enumeration
|
||||
/// <summary>
|
||||
/// Defines the possible throttling modes in SQL Azure.
|
||||
/// </summary>
|
||||
public enum ThrottlingMode
|
||||
{
|
||||
/// <summary>
|
||||
/// Corresponds to "No Throttling" throttling mode whereby all SQL statements can be processed.
|
||||
/// </summary>
|
||||
NoThrottling = 0,
|
||||
|
||||
/// <summary>
|
||||
/// Corresponds to "Reject Update / Insert" throttling mode whereby SQL statements such as INSERT, UPDATE, CREATE TABLE and CREATE INDEX are rejected.
|
||||
/// </summary>
|
||||
RejectUpdateInsert = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Corresponds to "Reject All Writes" throttling mode whereby SQL statements such as INSERT, UPDATE, DELETE, CREATE, DROP are rejected.
|
||||
/// </summary>
|
||||
RejectAllWrites = 2,
|
||||
|
||||
/// <summary>
|
||||
/// Corresponds to "Reject All" throttling mode whereby all SQL statements are rejected.
|
||||
/// </summary>
|
||||
RejectAll = 3,
|
||||
|
||||
/// <summary>
|
||||
/// Corresponds to an unknown throttling mode whereby throttling mode cannot be determined with certainty.
|
||||
/// </summary>
|
||||
Unknown = -1
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ThrottlingType enumeration
|
||||
/// <summary>
|
||||
/// Defines the possible throttling types in SQL Azure.
|
||||
/// </summary>
|
||||
public enum ThrottlingType
|
||||
{
|
||||
/// <summary>
|
||||
/// Indicates that no throttling was applied to a given resource.
|
||||
/// </summary>
|
||||
None = 0,
|
||||
|
||||
/// <summary>
|
||||
/// Corresponds to a Soft throttling type. Soft throttling is applied when machine resources such as, CPU, IO, storage, and worker threads exceed
|
||||
/// predefined safety thresholds despite the load balancer’s best efforts.
|
||||
/// </summary>
|
||||
Soft = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Corresponds to a Hard throttling type. Hard throttling is applied when the machine is out of resources, for example storage space.
|
||||
/// With hard throttling, no new connections are allowed to the databases hosted on the machine until resources are freed up.
|
||||
/// </summary>
|
||||
Hard = 2,
|
||||
|
||||
/// <summary>
|
||||
/// Corresponds to an unknown throttling type in the event when the throttling type cannot be determined with certainty.
|
||||
/// </summary>
|
||||
Unknown = 3
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ThrottledResourceType enumeration
|
||||
/// <summary>
|
||||
/// Defines the types of resources in SQL Azure which may be subject to throttling conditions.
|
||||
/// </summary>
|
||||
public enum ThrottledResourceType
|
||||
{
|
||||
/// <summary>
|
||||
/// Corresponds to "Physical Database Space" resource which may be subject to throttling.
|
||||
/// </summary>
|
||||
PhysicalDatabaseSpace = 0,
|
||||
|
||||
/// <summary>
|
||||
/// Corresponds to "Physical Log File Space" resource which may be subject to throttling.
|
||||
/// </summary>
|
||||
PhysicalLogSpace = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Corresponds to "Transaction Log Write IO Delay" resource which may be subject to throttling.
|
||||
/// </summary>
|
||||
LogWriteIODelay = 2,
|
||||
|
||||
/// <summary>
|
||||
/// Corresponds to "Database Read IO Delay" resource which may be subject to throttling.
|
||||
/// </summary>
|
||||
DataReadIODelay = 3,
|
||||
|
||||
/// <summary>
|
||||
/// Corresponds to "CPU" resource which may be subject to throttling.
|
||||
/// </summary>
|
||||
CPU = 4,
|
||||
|
||||
/// <summary>
|
||||
/// Corresponds to "Database Size" resource which may be subject to throttling.
|
||||
/// </summary>
|
||||
DatabaseSize = 5,
|
||||
|
||||
/// <summary>
|
||||
/// Corresponds to "SQL Worker Thread Pool" resource which may be subject to throttling.
|
||||
/// </summary>
|
||||
WorkerThreads = 7,
|
||||
|
||||
/// <summary>
|
||||
/// Corresponds to an internal resource which may be subject to throttling.
|
||||
/// </summary>
|
||||
Internal = 6,
|
||||
|
||||
/// <summary>
|
||||
/// Corresponds to an unknown resource type in the event when the actual resource cannot be determined with certainty.
|
||||
/// </summary>
|
||||
Unknown = -1
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,542 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
// This code is copied from the source described in the comment below.
|
||||
|
||||
// =======================================================================================
|
||||
// Microsoft Windows Server AppFabric Customer Advisory Team (CAT) Best Practices Series
|
||||
//
|
||||
// This sample is supplemental to the technical guidance published on the community
|
||||
// blog at http://blogs.msdn.com/appfabriccat/ and copied from
|
||||
// sqlmain ./sql/manageability/mfx/common/
|
||||
//
|
||||
// =======================================================================================
|
||||
// Copyright © 2012 Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
// EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
|
||||
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. YOU BEAR THE RISK OF USING IT.
|
||||
// =======================================================================================
|
||||
|
||||
// namespace Microsoft.SQL.CAT.BestPractices.SqlAzure.Framework
|
||||
// namespace Microsoft.SqlServer.Management.Common
|
||||
|
||||
using System;
|
||||
using System.Data.SqlClient;
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics.Contracts;
|
||||
using System.Globalization;
|
||||
using System.Threading;
|
||||
using Microsoft.SqlTools.Hosting.Utility;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
/// <summary>
|
||||
/// Implements a policy defining and implementing the retry mechanism for unreliable actions.
|
||||
/// </summary>
|
||||
internal abstract partial class RetryPolicy
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines a callback delegate which will be invoked whenever a retry condition is encountered.
|
||||
/// </summary>
|
||||
/// <param name="retryState">The state of current retry attempt.</param>
|
||||
internal delegate void RetryCallbackDelegate(RetryState retryState);
|
||||
|
||||
/// <summary>
|
||||
/// Defines a callback delegate which will be invoked whenever an error is ignored on retry.
|
||||
/// </summary>
|
||||
/// <param name="retryState">The state of current retry attempt.</param>
|
||||
internal delegate void IgnoreErrorCallbackDelegate(RetryState retryState);
|
||||
|
||||
private readonly IErrorDetectionStrategy _errorDetectionStrategy;
|
||||
|
||||
protected RetryPolicy(IErrorDetectionStrategy strategy)
|
||||
{
|
||||
Contract.Assert(strategy != null);
|
||||
|
||||
_errorDetectionStrategy = strategy;
|
||||
this.FastFirstRetry = true;
|
||||
|
||||
//TODO Defect 1078447 Validate whether CommandTimeout needs to be used differently in schema/data scenarios
|
||||
this.CommandTimeoutInSeconds = AmbientSettings.LongRunningQueryTimeoutSeconds;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// An instance of a callback delegate which will be invoked whenever a retry condition is encountered.
|
||||
/// </summary>
|
||||
public event RetryCallbackDelegate RetryOccurred;
|
||||
|
||||
/// <summary>
|
||||
/// An instance of a callback delegate which will be invoked whenever an error is ignored on retry.
|
||||
/// </summary>
|
||||
public event IgnoreErrorCallbackDelegate IgnoreErrorOccurred;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether or not the very first retry attempt will be made immediately
|
||||
/// whereas the subsequent retries will remain subject to retry interval.
|
||||
/// </summary>
|
||||
public bool FastFirstRetry { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the timeout in seconds of sql commands
|
||||
/// </summary>
|
||||
public int CommandTimeoutInSeconds
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the error detection strategy of this retry policy
|
||||
/// </summary>
|
||||
internal IErrorDetectionStrategy ErrorDetectionStrategy
|
||||
{
|
||||
get
|
||||
{
|
||||
return _errorDetectionStrategy;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// We should only ignore errors if they happen after the first retry.
|
||||
/// This flag is used to allow the ignore even on first try, for testing purposes.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This flag is currently being used for TESTING PURPOSES ONLY.
|
||||
/// </remarks>
|
||||
internal bool ShouldIgnoreOnFirstTry
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
protected static bool IsLessThanMaxRetryCount(int currentRetryCount, int maxRetryCount)
|
||||
{
|
||||
return currentRetryCount <= maxRetryCount;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Repetitively executes the specified action while it satisfies the current retry policy.
|
||||
/// </summary>
|
||||
/// <param name="action">A delegate representing the executable action which doesn't return any results.</param>
|
||||
/// <param name="token">Cancellation token to cancel action between retries.</param>
|
||||
public void ExecuteAction(Action action, CancellationToken? token = null)
|
||||
{
|
||||
ExecuteAction(
|
||||
_ => action(), token);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Repetitively executes the specified action while it satisfies the current retry policy.
|
||||
/// </summary>
|
||||
/// <param name="action">A delegate representing the executable action which doesn't return any results.</param>
|
||||
/// <param name="token">Cancellation token to cancel action between retries.</param>
|
||||
public void ExecuteAction(Action<RetryState> action, CancellationToken? token = null)
|
||||
{
|
||||
ExecuteAction<object>(
|
||||
retryState =>
|
||||
{
|
||||
action(retryState);
|
||||
return null;
|
||||
}, token);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Repetitively executes the specified action while it satisfies the current retry policy.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">The type of result expected from the executable action.</typeparam>
|
||||
/// <param name="func">A delegate representing the executable action which returns the result of type T.</param>
|
||||
/// <param name="token">Cancellation token to cancel action between retries.</param>
|
||||
/// <returns>The result from the action.</returns>
|
||||
public T ExecuteAction<T>(Func<T> func, CancellationToken? token = null)
|
||||
{
|
||||
return ExecuteAction(
|
||||
_ => func(), token);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Repetitively executes the specified action while it satisfies the current retry policy.
|
||||
/// </summary>
|
||||
/// <typeparam name="R">The type of result expected from the executable action.</typeparam>
|
||||
/// <param name="func">A delegate representing the executable action which returns the result of type R.</param>
|
||||
/// <param name="token">Cancellation token to cancel action between retries.</param>
|
||||
/// <returns>The result from the action.</returns>
|
||||
public R ExecuteAction<R>(Func<RetryState, R> func, CancellationToken? token = null)
|
||||
{
|
||||
RetryState retryState = CreateRetryState();
|
||||
|
||||
if (token != null)
|
||||
{
|
||||
token.Value.ThrowIfCancellationRequested();
|
||||
}
|
||||
|
||||
while (true)
|
||||
{
|
||||
try
|
||||
{
|
||||
return func(retryState);
|
||||
}
|
||||
catch (RetryLimitExceededException limitExceededEx)
|
||||
{
|
||||
// The user code can throw a RetryLimitExceededException to force the exit from the retry loop.
|
||||
// The RetryLimitExceeded exception can have an inner exception attached to it. This is the exception
|
||||
// which we will have to throw up the stack so that callers can handle it.
|
||||
if (limitExceededEx.InnerException != null)
|
||||
{
|
||||
throw limitExceededEx.InnerException;
|
||||
}
|
||||
|
||||
return default(R);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
retryState.LastError = ex;
|
||||
|
||||
if (retryState.RetryCount > 0 || this.ShouldIgnoreOnFirstTry)
|
||||
{
|
||||
// If we can ignore this error, then break out of the loop and consider this execution as passing
|
||||
// We return the default value for the type R
|
||||
if (ShouldIgnoreError(retryState))
|
||||
{
|
||||
OnIgnoreErrorOccurred(retryState);
|
||||
return default(R);
|
||||
}
|
||||
}
|
||||
|
||||
retryState.RetryCount++;
|
||||
|
||||
if (!ShouldRetry(retryState))
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
OnRetryOccurred(retryState);
|
||||
|
||||
if ((retryState.RetryCount > 1 || !FastFirstRetry) && !retryState.IsDelayDisabled)
|
||||
{
|
||||
Thread.Sleep(retryState.Delay);
|
||||
}
|
||||
|
||||
// check for cancellation after delay.
|
||||
if (token != null)
|
||||
{
|
||||
token.Value.ThrowIfCancellationRequested();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual RetryState CreateRetryState()
|
||||
{
|
||||
return new RetryState();
|
||||
}
|
||||
|
||||
public bool IsRetryableException(Exception ex)
|
||||
{
|
||||
return ErrorDetectionStrategy.CanRetry(ex);
|
||||
}
|
||||
|
||||
public bool ShouldRetry(RetryState retryState)
|
||||
{
|
||||
bool canRetry = ErrorDetectionStrategy.CanRetry(retryState.LastError);
|
||||
bool shouldRetry = canRetry
|
||||
&& ShouldRetryImpl(retryState);
|
||||
|
||||
Logger.Instance.Write(LogLevel.Error,
|
||||
string.Format(
|
||||
CultureInfo.InvariantCulture,
|
||||
"Retry requested: Retry count = {0}. Delay = {1}, SQL Error Number = {2}, Can retry error = {3}, Will retry = {4}",
|
||||
retryState.RetryCount,
|
||||
retryState.Delay,
|
||||
GetErrorNumber(retryState.LastError),
|
||||
canRetry,
|
||||
shouldRetry));
|
||||
|
||||
// Perform an extra check in the delay interval. Should prevent from accidentally ending up with the value of -1 which will block a thread indefinitely.
|
||||
// In addition, any other negative numbers will cause an ArgumentOutOfRangeException fault which will be thrown by Thread.Sleep.
|
||||
if (retryState.Delay.TotalMilliseconds < 0)
|
||||
{
|
||||
retryState.Delay = TimeSpan.Zero;
|
||||
}
|
||||
return shouldRetry;
|
||||
}
|
||||
|
||||
public bool ShouldIgnoreError(RetryState retryState)
|
||||
{
|
||||
bool shouldIgnoreError = ErrorDetectionStrategy.ShouldIgnoreError(retryState.LastError);
|
||||
|
||||
Logger.Instance.Write(LogLevel.Error,
|
||||
string.Format(
|
||||
CultureInfo.InvariantCulture,
|
||||
"Ignore Error requested: Retry count = {0}. Delay = {1}, SQL Error Number = {2}, Should Ignore Error = {3}",
|
||||
retryState.RetryCount,
|
||||
retryState.Delay,
|
||||
GetErrorNumber(retryState.LastError),
|
||||
shouldIgnoreError));
|
||||
|
||||
return shouldIgnoreError;
|
||||
}
|
||||
|
||||
/* TODO - Error code does not exist in SqlException for .NET Core
|
||||
private static int? GetErrorCode(Exception ex)
|
||||
{
|
||||
SqlException sqlEx= ex as SqlException;
|
||||
if (sqlEx == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return sqlEx.ErrorCode;
|
||||
}
|
||||
*/
|
||||
|
||||
internal static int? GetErrorNumber(Exception ex)
|
||||
{
|
||||
SqlException sqlEx = ex as SqlException;
|
||||
if (sqlEx == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return sqlEx.Number;
|
||||
}
|
||||
|
||||
protected abstract bool ShouldRetryImpl(RetryState retryState);
|
||||
|
||||
/// <summary>
|
||||
/// Notifies the subscribers whenever a retry condition is encountered.
|
||||
/// </summary>
|
||||
/// <param name="retryState">The state of current retry attempt.</param>
|
||||
protected virtual void OnRetryOccurred(RetryState retryState)
|
||||
{
|
||||
var retryOccurred = RetryOccurred;
|
||||
if (retryOccurred != null)
|
||||
{
|
||||
retryOccurred(retryState);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Notifies the subscribers whenever an error is ignored on retry.
|
||||
/// </summary>
|
||||
/// <param name="retryState">The state of current retry attempt.</param>
|
||||
protected virtual void OnIgnoreErrorOccurred(RetryState retryState)
|
||||
{
|
||||
var ignoreErrorOccurred = IgnoreErrorOccurred;
|
||||
if (ignoreErrorOccurred != null)
|
||||
{
|
||||
ignoreErrorOccurred(retryState);
|
||||
}
|
||||
}
|
||||
|
||||
internal class FixedDelayPolicy : RetryPolicy
|
||||
{
|
||||
private readonly int _maxRetryCount;
|
||||
private readonly TimeSpan _intervalBetweenRetries;
|
||||
|
||||
/// <summary>
|
||||
/// Constructs a new instance of the TRetryPolicy class with the specified number of retry attempts and time interval between retries.
|
||||
/// </summary>
|
||||
/// <param name="strategy">The <see cref="RetryPolicy.IErrorDetectionStrategy"/> to use when checking whether an error is retryable</param>
|
||||
/// <param name="maxRetryCount">The max number of retry attempts. Should be 1-indexed.</param>
|
||||
/// <param name="intervalBetweenRetries">The interval between retries.</param>
|
||||
public FixedDelayPolicy(IErrorDetectionStrategy strategy, int maxRetryCount, TimeSpan intervalBetweenRetries)
|
||||
: base(strategy)
|
||||
{
|
||||
Contract.Assert(maxRetryCount >= 0, "maxRetryCount cannot be a negative number");
|
||||
Contract.Assert(intervalBetweenRetries.Ticks >= 0, "intervalBetweenRetries cannot be negative");
|
||||
|
||||
_maxRetryCount = maxRetryCount;
|
||||
_intervalBetweenRetries = intervalBetweenRetries;
|
||||
}
|
||||
|
||||
protected override bool ShouldRetryImpl(RetryState retryState)
|
||||
{
|
||||
Contract.Assert(retryState != null);
|
||||
|
||||
if (IsLessThanMaxRetryCount(retryState.RetryCount, _maxRetryCount))
|
||||
{
|
||||
retryState.Delay = _intervalBetweenRetries;
|
||||
return true;
|
||||
}
|
||||
|
||||
retryState.Delay = TimeSpan.Zero;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
internal class ProgressiveRetryPolicy : RetryPolicy
|
||||
{
|
||||
private readonly int _maxRetryCount;
|
||||
private readonly TimeSpan _initialInterval;
|
||||
private readonly TimeSpan _increment;
|
||||
|
||||
/// <summary>
|
||||
/// Constructs a new instance of the TRetryPolicy class with the specified number of retry attempts and parameters defining the progressive delay between retries.
|
||||
/// </summary>
|
||||
/// <param name="strategy">The <see cref="RetryPolicy.IErrorDetectionStrategy"/> to use when checking whether an error is retryable</param>
|
||||
/// <param name="maxRetryCount">The maximum number of retry attempts. Should be 1-indexed.</param>
|
||||
/// <param name="initialInterval">The initial interval which will apply for the first retry.</param>
|
||||
/// <param name="increment">The incremental time value which will be used for calculating the progressive delay between retries.</param>
|
||||
public ProgressiveRetryPolicy(IErrorDetectionStrategy strategy, int maxRetryCount, TimeSpan initialInterval, TimeSpan increment)
|
||||
: base(strategy)
|
||||
{
|
||||
Contract.Assert(maxRetryCount >= 0, "maxRetryCount cannot be a negative number");
|
||||
Contract.Assert(initialInterval.Ticks >= 0, "retryInterval cannot be negative");
|
||||
Contract.Assert(increment.Ticks >= 0, "retryInterval cannot be negative");
|
||||
|
||||
_maxRetryCount = maxRetryCount;
|
||||
_initialInterval = initialInterval;
|
||||
_increment = increment;
|
||||
}
|
||||
|
||||
protected override bool ShouldRetryImpl(RetryState retryState)
|
||||
{
|
||||
Contract.Assert(retryState != null);
|
||||
|
||||
if (IsLessThanMaxRetryCount(retryState.RetryCount, _maxRetryCount))
|
||||
{
|
||||
retryState.Delay = TimeSpan.FromMilliseconds(_initialInterval.TotalMilliseconds + (_increment.TotalMilliseconds * (retryState.RetryCount - 1)));
|
||||
return true;
|
||||
}
|
||||
|
||||
retryState.Delay = TimeSpan.Zero;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
internal class ExponentialDelayRetryPolicy : RetryPolicy
|
||||
{
|
||||
private readonly int _maxRetryCount;
|
||||
private readonly double _intervalFactor;
|
||||
private readonly TimeSpan _minInterval;
|
||||
private readonly TimeSpan _maxInterval;
|
||||
|
||||
/// <summary>
|
||||
/// Constructs a new instance of the TRetryPolicy class with the specified number of retry attempts and parameters defining the progressive delay between retries.
|
||||
/// </summary>
|
||||
/// <param name="strategy">The <see cref="RetryPolicy.IErrorDetectionStrategy"/> to use when checking whether an error is retryable</param>
|
||||
/// <param name="maxRetryCount">The maximum number of retry attempts.</param>
|
||||
/// <param name="intervalFactor">Controls the speed at which the delay increases - the retryCount is raised to this power as
|
||||
/// part of the function </param>
|
||||
/// <param name="minInterval">Minimum interval between retries. The basis for all backoff calculations</param>
|
||||
/// <param name="maxInterval">Maximum interval between retries. Backoff will not take longer than this period.</param>
|
||||
public ExponentialDelayRetryPolicy(IErrorDetectionStrategy strategy, int maxRetryCount, double intervalFactor, TimeSpan minInterval, TimeSpan maxInterval)
|
||||
: base(strategy)
|
||||
{
|
||||
Contract.Assert(maxRetryCount >= 0, "maxRetryCount cannot be a negative number");
|
||||
Contract.Assert(intervalFactor > 1, "intervalFactor Must be > 1 so that the delay increases exponentially");
|
||||
Contract.Assert(minInterval.Ticks >= 0, "minInterval cannot be negative");
|
||||
Contract.Assert(maxInterval.Ticks >= 0, "maxInterval cannot be negative");
|
||||
Contract.Assert(maxInterval.Ticks >= minInterval.Ticks, "maxInterval must be greater than minInterval");
|
||||
|
||||
_maxRetryCount = maxRetryCount;
|
||||
_intervalFactor = intervalFactor;
|
||||
_minInterval = minInterval;
|
||||
_maxInterval = maxInterval;
|
||||
}
|
||||
|
||||
protected override bool ShouldRetryImpl(RetryState retryState)
|
||||
{
|
||||
Contract.Assert(retryState != null);
|
||||
|
||||
if (IsLessThanMaxRetryCount(retryState.RetryCount, _maxRetryCount))
|
||||
{
|
||||
retryState.Delay = RetryPolicyUtils.CalcExponentialRetryDelay(retryState.RetryCount, _intervalFactor, _minInterval, _maxInterval);
|
||||
return true;
|
||||
}
|
||||
|
||||
retryState.Delay = TimeSpan.Zero;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
internal class TimeBasedRetryPolicy : RetryPolicy
|
||||
{
|
||||
private readonly TimeSpan _minTotalRetryTimeLimit;
|
||||
private readonly TimeSpan _maxTotalRetryTimeLimit;
|
||||
private readonly double _totalRetryTimeLimitRate;
|
||||
|
||||
private readonly TimeSpan _minInterval;
|
||||
private readonly TimeSpan _maxInterval;
|
||||
private readonly double _intervalFactor;
|
||||
|
||||
private readonly Stopwatch _stopwatch;
|
||||
|
||||
public TimeBasedRetryPolicy(
|
||||
IErrorDetectionStrategy strategy,
|
||||
TimeSpan minTotalRetryTimeLimit,
|
||||
TimeSpan maxTotalRetryTimeLimit,
|
||||
double totalRetryTimeLimitRate,
|
||||
TimeSpan minInterval,
|
||||
TimeSpan maxInterval,
|
||||
double intervalFactor)
|
||||
: base(strategy)
|
||||
{
|
||||
Contract.Assert(minTotalRetryTimeLimit.Ticks >= 0);
|
||||
Contract.Assert(maxTotalRetryTimeLimit.Ticks >= minTotalRetryTimeLimit.Ticks);
|
||||
Contract.Assert(totalRetryTimeLimitRate >= 0);
|
||||
|
||||
Contract.Assert(minInterval.Ticks >= 0);
|
||||
Contract.Assert(maxInterval.Ticks >= minInterval.Ticks);
|
||||
Contract.Assert(intervalFactor >= 1);
|
||||
|
||||
_minTotalRetryTimeLimit = minTotalRetryTimeLimit;
|
||||
_maxTotalRetryTimeLimit = maxTotalRetryTimeLimit;
|
||||
_totalRetryTimeLimitRate = totalRetryTimeLimitRate;
|
||||
|
||||
_minInterval = minInterval;
|
||||
_maxInterval = maxInterval;
|
||||
_intervalFactor = intervalFactor;
|
||||
|
||||
_stopwatch = Stopwatch.StartNew();
|
||||
}
|
||||
|
||||
protected override bool ShouldRetryImpl(RetryState retryStateObj)
|
||||
{
|
||||
Contract.Assert(retryStateObj is RetryStateEx);
|
||||
RetryStateEx retryState = (RetryStateEx)retryStateObj;
|
||||
|
||||
// Calculate the delay as exponential value based on the number of retries.
|
||||
retryState.Delay =
|
||||
RetryPolicyUtils.CalcExponentialRetryDelay(
|
||||
retryState.RetryCount,
|
||||
_intervalFactor,
|
||||
_minInterval,
|
||||
_maxInterval);
|
||||
|
||||
// Add the delay to the total retry time
|
||||
retryState.TotalRetryTime = retryState.TotalRetryTime + retryState.Delay;
|
||||
|
||||
// Calculate the maximum total retry time depending on how long ago was the task (this retry policy) started.
|
||||
// Longer running tasks are less eager to abort since, more work is has been done.
|
||||
TimeSpan totalRetryTimeLimit = checked(TimeSpan.FromMilliseconds(
|
||||
Math.Max(
|
||||
Math.Min(
|
||||
_stopwatch.ElapsedMilliseconds * _totalRetryTimeLimitRate,
|
||||
_maxTotalRetryTimeLimit.TotalMilliseconds),
|
||||
_minTotalRetryTimeLimit.TotalMilliseconds)));
|
||||
|
||||
if (retryState.TotalRetryTime <= totalRetryTimeLimit)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
retryState.Delay = TimeSpan.Zero;
|
||||
return false;
|
||||
}
|
||||
|
||||
protected override RetryState CreateRetryState()
|
||||
{
|
||||
return new RetryStateEx { TotalRetryTime = TimeSpan.Zero };
|
||||
}
|
||||
|
||||
internal sealed class RetryStateEx : RetryState
|
||||
{
|
||||
public TimeSpan TotalRetryTime { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,459 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using Microsoft.SqlTools.Hosting.Utility;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
internal sealed class RetryPolicyDefaults
|
||||
{
|
||||
/// <summary>
|
||||
/// The default number of retry attempts.
|
||||
/// </summary>
|
||||
public const int DefaulSchemaRetryCount = 6;
|
||||
|
||||
/// <summary>
|
||||
/// The default number of retry attempts for create database.
|
||||
/// </summary>
|
||||
public const int DefaultCreateDatabaseRetryCount = 5;
|
||||
|
||||
/// <summary>
|
||||
/// The default amount of time defining an interval between retries.
|
||||
/// </summary>
|
||||
public static readonly TimeSpan DefaultSchemaMinInterval = TimeSpan.FromSeconds(2.75);
|
||||
|
||||
/// <summary>
|
||||
/// The default factor to use when determining exponential backoff between retries.
|
||||
/// </summary>
|
||||
public const double DefaultBackoffIntervalFactor = 2.0;
|
||||
|
||||
/// <summary>
|
||||
/// The default maximum time between retries.
|
||||
/// </summary>
|
||||
public static readonly TimeSpan DefaultMaxRetryInterval = TimeSpan.FromSeconds(60);
|
||||
|
||||
/// <summary>
|
||||
/// The default number of retry attempts.
|
||||
/// </summary>
|
||||
public static readonly int DefaultDataCommandRetryCount = 5;
|
||||
|
||||
/// <summary>
|
||||
/// The default number of retry attempts for a connection related error
|
||||
/// </summary>
|
||||
public static readonly int DefaultConnectionRetryCount = 6;
|
||||
|
||||
/// <summary>
|
||||
/// The default amount of time defining an interval between retries.
|
||||
/// </summary>
|
||||
public static readonly TimeSpan DefaultDataMinInterval = TimeSpan.FromSeconds(1.0);
|
||||
|
||||
/// <summary>
|
||||
/// The default amount of time defining a time increment between retry attempts in the progressive delay policy.
|
||||
/// </summary>
|
||||
public static readonly TimeSpan DefaultProgressiveRetryIncrement = TimeSpan.FromMilliseconds(500);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Implements a collection of the RetryPolicyInfo elements holding retry policy settings.
|
||||
/// </summary>
|
||||
internal sealed class RetryPolicyFactory
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns a default policy that does no retries, it just invokes action exactly once.
|
||||
/// </summary>
|
||||
public static readonly RetryPolicy NoRetryPolicy = RetryPolicyFactory.CreateNoRetryPolicy();
|
||||
|
||||
/// <summary>
|
||||
/// Returns a default policy that does no retries, it just invokes action exactly once.
|
||||
/// </summary>
|
||||
public static readonly RetryPolicy PrimaryKeyViolationRetryPolicy = RetryPolicyFactory.CreatePrimaryKeyCommandRetryPolicy();
|
||||
|
||||
/// <summary>
|
||||
/// Implements a strategy that ignores any transient errors.
|
||||
/// Internal for testing purposes only
|
||||
/// </summary>
|
||||
internal sealed class TransientErrorIgnoreStrategy : RetryPolicy.IErrorDetectionStrategy
|
||||
{
|
||||
private static readonly TransientErrorIgnoreStrategy _instance = new TransientErrorIgnoreStrategy();
|
||||
|
||||
public static TransientErrorIgnoreStrategy Instance
|
||||
{
|
||||
get { return _instance; }
|
||||
}
|
||||
|
||||
public bool CanRetry(Exception ex)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool ShouldIgnoreError(Exception ex)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates and returns a default Retry Policy for Schema based operations.
|
||||
/// </summary>
|
||||
/// <returns>An instance of <see cref="RetryPolicy"/> class.</returns>
|
||||
internal static RetryPolicy CreateDefaultSchemaCommandRetryPolicy(bool useRetry, int retriesPerPhase = RetryPolicyDefaults.DefaulSchemaRetryCount)
|
||||
{
|
||||
RetryPolicy policy;
|
||||
|
||||
if (useRetry)
|
||||
{
|
||||
policy = new RetryPolicy.ExponentialDelayRetryPolicy(
|
||||
RetryPolicy.SqlAzureTemporaryErrorDetectionStrategy.Instance,
|
||||
retriesPerPhase,
|
||||
RetryPolicyDefaults.DefaultBackoffIntervalFactor,
|
||||
RetryPolicyDefaults.DefaultSchemaMinInterval,
|
||||
RetryPolicyDefaults.DefaultMaxRetryInterval);
|
||||
policy.FastFirstRetry = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
policy = CreateNoRetryPolicy();
|
||||
}
|
||||
|
||||
return policy;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates and returns a default Retry Policy for Schema based connection operations.
|
||||
/// </summary>
|
||||
/// <remarks>The RetryOccured event is wired to raise an RaiseAmbientRetryMessage message for a connection retry. </remarks>
|
||||
/// <returns>An instance of <see cref="RetryPolicy"/> class.</returns>
|
||||
internal static RetryPolicy CreateSchemaConnectionRetryPolicy(int retriesPerPhase)
|
||||
{
|
||||
RetryPolicy policy = new RetryPolicy.ExponentialDelayRetryPolicy(
|
||||
RetryPolicy.SqlAzureTemporaryErrorDetectionStrategy.Instance,
|
||||
retriesPerPhase,
|
||||
RetryPolicyDefaults.DefaultBackoffIntervalFactor,
|
||||
RetryPolicyDefaults.DefaultSchemaMinInterval,
|
||||
RetryPolicyDefaults.DefaultMaxRetryInterval);
|
||||
policy.RetryOccurred += DataConnectionFailureRetry;
|
||||
return policy;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates and returns a default Retry Policy for Schema based command operations.
|
||||
/// </summary>
|
||||
/// <remarks>The RetryOccured event is wired to raise an RaiseAmbientRetryMessage message for a command retry. </remarks>
|
||||
/// <returns>An instance of <see cref="RetryPolicy"/> class.</returns>
|
||||
internal static RetryPolicy CreateSchemaCommandRetryPolicy(int retriesPerPhase)
|
||||
{
|
||||
RetryPolicy policy = new RetryPolicy.ExponentialDelayRetryPolicy(
|
||||
RetryPolicy.SqlAzureTemporaryErrorDetectionStrategy.Instance,
|
||||
retriesPerPhase,
|
||||
RetryPolicyDefaults.DefaultBackoffIntervalFactor,
|
||||
RetryPolicyDefaults.DefaultSchemaMinInterval,
|
||||
RetryPolicyDefaults.DefaultMaxRetryInterval);
|
||||
policy.FastFirstRetry = false;
|
||||
policy.RetryOccurred += CommandFailureRetry;
|
||||
return policy;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates and returns a Retry Policy for database creation operations.
|
||||
/// </summary>
|
||||
/// <param name="ignorableErrorNumbers">Errors to ignore if they occur after first retry</param>
|
||||
/// <remarks>
|
||||
/// The RetryOccured event is wired to raise an RaiseAmbientRetryMessage message for a command retry.
|
||||
/// The IgnoreErrorOccurred event is wired to raise an RaiseAmbientIgnoreMessage message for ignore.
|
||||
/// </remarks>
|
||||
/// <returns>An instance of <see cref="RetryPolicy"/> class.</returns>
|
||||
internal static RetryPolicy CreateDatabaseCommandRetryPolicy(params int[] ignorableErrorNumbers)
|
||||
{
|
||||
RetryPolicy.SqlAzureTemporaryAndIgnorableErrorDetectionStrategy errorDetectionStrategy =
|
||||
new RetryPolicy.SqlAzureTemporaryAndIgnorableErrorDetectionStrategy(ignorableErrorNumbers);
|
||||
|
||||
// 30, 60, 60, 60, 60 second retries
|
||||
RetryPolicy policy = new RetryPolicy.ExponentialDelayRetryPolicy(
|
||||
errorDetectionStrategy,
|
||||
RetryPolicyDefaults.DefaultCreateDatabaseRetryCount /* maxRetryCount */,
|
||||
RetryPolicyDefaults.DefaultBackoffIntervalFactor,
|
||||
TimeSpan.FromSeconds(30) /* minInterval */,
|
||||
TimeSpan.FromSeconds(60) /* maxInterval */);
|
||||
|
||||
policy.FastFirstRetry = false;
|
||||
policy.RetryOccurred += CreateDatabaseCommandFailureRetry;
|
||||
policy.IgnoreErrorOccurred += CreateDatabaseCommandFailureIgnore;
|
||||
|
||||
return policy;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates and returns an "ignoreable" command Retry Policy.
|
||||
/// </summary>
|
||||
/// <param name="ignorableErrorNumbers">Errors to ignore if they occur after first retry</param>
|
||||
/// <remarks>
|
||||
/// The RetryOccured event is wired to raise an RaiseAmbientRetryMessage message for a command retry.
|
||||
/// The IgnoreErrorOccurred event is wired to raise an RaiseAmbientIgnoreMessage message for ignore.
|
||||
/// </remarks>
|
||||
/// <returns>An instance of <see cref="RetryPolicy"/> class.</returns>
|
||||
internal static RetryPolicy CreateElementCommandRetryPolicy(params int[] ignorableErrorNumbers)
|
||||
{
|
||||
Debug.Assert(ignorableErrorNumbers != null);
|
||||
|
||||
RetryPolicy.SqlAzureTemporaryAndIgnorableErrorDetectionStrategy errorDetectionStrategy =
|
||||
new RetryPolicy.SqlAzureTemporaryAndIgnorableErrorDetectionStrategy(ignorableErrorNumbers);
|
||||
|
||||
RetryPolicy policy = new RetryPolicy.ExponentialDelayRetryPolicy(
|
||||
errorDetectionStrategy,
|
||||
RetryPolicyDefaults.DefaulSchemaRetryCount,
|
||||
RetryPolicyDefaults.DefaultBackoffIntervalFactor,
|
||||
RetryPolicyDefaults.DefaultSchemaMinInterval,
|
||||
RetryPolicyDefaults.DefaultMaxRetryInterval);
|
||||
|
||||
policy.FastFirstRetry = false;
|
||||
policy.RetryOccurred += ElementCommandFailureRetry;
|
||||
policy.IgnoreErrorOccurred += ElementCommandFailureIgnore;
|
||||
|
||||
return policy;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates and returns an "primary key violation" command Retry Policy.
|
||||
/// </summary>
|
||||
/// <param name="ignorableErrorNumbers">Errors to ignore if they occur after first retry</param>
|
||||
/// <remarks>
|
||||
/// The RetryOccured event is wired to raise an RaiseAmbientRetryMessage message for a command retry.
|
||||
/// The IgnoreErrorOccurred event is wired to raise an RaiseAmbientIgnoreMessage message for ignore.
|
||||
/// </remarks>
|
||||
/// <returns>An instance of <see cref="RetryPolicy"/> class.</returns>
|
||||
internal static RetryPolicy CreatePrimaryKeyCommandRetryPolicy()
|
||||
{
|
||||
RetryPolicy.SqlAzureTemporaryAndIgnorableErrorDetectionStrategy errorDetectionStrategy =
|
||||
new RetryPolicy.SqlAzureTemporaryAndIgnorableErrorDetectionStrategy(SqlErrorNumbers.PrimaryKeyViolationErrorNumber);
|
||||
|
||||
RetryPolicy policy = new RetryPolicy.ExponentialDelayRetryPolicy(
|
||||
errorDetectionStrategy,
|
||||
RetryPolicyDefaults.DefaulSchemaRetryCount,
|
||||
RetryPolicyDefaults.DefaultBackoffIntervalFactor,
|
||||
RetryPolicyDefaults.DefaultSchemaMinInterval,
|
||||
RetryPolicyDefaults.DefaultMaxRetryInterval);
|
||||
|
||||
policy.FastFirstRetry = true;
|
||||
policy.RetryOccurred += CommandFailureRetry;
|
||||
policy.IgnoreErrorOccurred += CommandFailureIgnore;
|
||||
|
||||
return policy;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a Policy that will never allow retries to occur.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static RetryPolicy CreateNoRetryPolicy()
|
||||
{
|
||||
return new RetryPolicy.FixedDelayPolicy(TransientErrorIgnoreStrategy.Instance, 0, TimeSpan.Zero);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a Policy that is optimized for data-related script update operations.
|
||||
/// This is extremely error tolerant and uses a Time based delay policy that backs
|
||||
/// off until some overall length of delay has occurred. It is not as long-running
|
||||
/// as the ConnectionManager data transfer retry policy since that's intended for bulk upload
|
||||
/// of large amounts of data, whereas this is for individual batch scripts executed by the
|
||||
/// batch execution engine.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static RetryPolicy CreateDataScriptUpdateRetryPolicy()
|
||||
{
|
||||
return new RetryPolicy.TimeBasedRetryPolicy(
|
||||
RetryPolicy.DataTransferErrorDetectionStrategy.Instance,
|
||||
TimeSpan.FromMinutes(7),
|
||||
TimeSpan.FromMinutes(7),
|
||||
0.1,
|
||||
TimeSpan.FromMilliseconds(250),
|
||||
TimeSpan.FromSeconds(30),
|
||||
1.5);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the default retry policy dedicated to handling exceptions with SQL connections
|
||||
/// </summary>
|
||||
/// <returns>The RetryPolicy policy</returns>
|
||||
public static RetryPolicy CreateFastDataRetryPolicy()
|
||||
{
|
||||
RetryPolicy retryPolicy = new RetryPolicy.FixedDelayPolicy(
|
||||
RetryPolicy.NetworkConnectivityErrorDetectionStrategy.Instance,
|
||||
RetryPolicyDefaults.DefaultDataCommandRetryCount,
|
||||
TimeSpan.FromMilliseconds(5));
|
||||
|
||||
retryPolicy.FastFirstRetry = true;
|
||||
retryPolicy.RetryOccurred += DataConnectionFailureRetry;
|
||||
return retryPolicy;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the default retry policy dedicated to handling exceptions with SQL connections.
|
||||
/// No logging or other message handler is attached to the policy
|
||||
/// </summary>
|
||||
/// <returns>The RetryPolicy policy</returns>
|
||||
public static RetryPolicy CreateDefaultSchemaConnectionRetryPolicy()
|
||||
{
|
||||
return CreateDefaultConnectionRetryPolicy();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the default retry policy dedicated to handling exceptions with SQL connections.
|
||||
/// Adds an event handler to log and notify listeners of data connection retries
|
||||
/// </summary>
|
||||
/// <returns>The RetryPolicy policy</returns>
|
||||
public static RetryPolicy CreateDefaultDataConnectionRetryPolicy()
|
||||
{
|
||||
RetryPolicy retryPolicy = CreateDefaultConnectionRetryPolicy();
|
||||
retryPolicy.RetryOccurred += DataConnectionFailureRetry;
|
||||
return retryPolicy;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the default retry policy dedicated to handling exceptions with SQL connections
|
||||
/// </summary>
|
||||
/// <returns>The RetryPolicy policy</returns>
|
||||
public static RetryPolicy CreateDefaultConnectionRetryPolicy()
|
||||
{
|
||||
// Note: No longer use Ado.net Connection Pooling and hence do not need TimeBasedRetryPolicy to
|
||||
// conform to the backoff requirements in this case
|
||||
RetryPolicy retryPolicy = new RetryPolicy.ExponentialDelayRetryPolicy(
|
||||
RetryPolicy.NetworkConnectivityErrorDetectionStrategy.Instance,
|
||||
RetryPolicyDefaults.DefaultConnectionRetryCount,
|
||||
RetryPolicyDefaults.DefaultBackoffIntervalFactor,
|
||||
RetryPolicyDefaults.DefaultSchemaMinInterval,
|
||||
RetryPolicyDefaults.DefaultMaxRetryInterval);
|
||||
|
||||
retryPolicy.FastFirstRetry = true;
|
||||
return retryPolicy;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the default retry policy dedicated to handling retryable conditions with data transfer SQL commands.
|
||||
/// </summary>
|
||||
/// <returns>The RetryPolicy policy</returns>
|
||||
public static RetryPolicy CreateDefaultDataSqlCommandRetryPolicy()
|
||||
{
|
||||
RetryPolicy retryPolicy = new RetryPolicy.ExponentialDelayRetryPolicy(
|
||||
RetryPolicy.SqlAzureTemporaryErrorDetectionStrategy.Instance,
|
||||
RetryPolicyDefaults.DefaultDataCommandRetryCount,
|
||||
RetryPolicyDefaults.DefaultBackoffIntervalFactor,
|
||||
RetryPolicyDefaults.DefaultDataMinInterval,
|
||||
RetryPolicyDefaults.DefaultMaxRetryInterval);
|
||||
|
||||
retryPolicy.FastFirstRetry = true;
|
||||
retryPolicy.RetryOccurred += CommandFailureRetry;
|
||||
return retryPolicy;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the default retry policy dedicated to handling retryable conditions with data transfer SQL commands.
|
||||
/// </summary>
|
||||
/// <returns>The RetryPolicy policy</returns>
|
||||
public static RetryPolicy CreateDefaultDataTransferRetryPolicy()
|
||||
{
|
||||
RetryPolicy retryPolicy = new RetryPolicy.TimeBasedRetryPolicy(
|
||||
RetryPolicy.DataTransferErrorDetectionStrategy.Instance,
|
||||
TimeSpan.FromMinutes(20),
|
||||
TimeSpan.FromMinutes(240),
|
||||
0.1,
|
||||
TimeSpan.FromMilliseconds(250),
|
||||
TimeSpan.FromMinutes(2),
|
||||
2);
|
||||
|
||||
retryPolicy.FastFirstRetry = true;
|
||||
retryPolicy.RetryOccurred += CommandFailureRetry;
|
||||
return retryPolicy;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the retry policy to handle data migration for column encryption.
|
||||
/// </summary>
|
||||
/// <returns>The RetryPolicy policy</returns>
|
||||
public static RetryPolicy CreateColumnEncryptionTransferRetryPolicy()
|
||||
{
|
||||
RetryPolicy retryPolicy = new RetryPolicy.TimeBasedRetryPolicy(
|
||||
RetryPolicy.DataTransferErrorDetectionStrategy.Instance,
|
||||
TimeSpan.FromMinutes(5),
|
||||
TimeSpan.FromMinutes(5),
|
||||
0.1,
|
||||
TimeSpan.FromMilliseconds(250),
|
||||
TimeSpan.FromMinutes(2),
|
||||
2);
|
||||
|
||||
retryPolicy.FastFirstRetry = true;
|
||||
retryPolicy.RetryOccurred += CommandFailureRetry;
|
||||
return retryPolicy;
|
||||
}
|
||||
|
||||
internal static void DataConnectionFailureRetry(RetryState retryState)
|
||||
{
|
||||
Logger.Instance.Write(LogLevel.Normal, string.Format(CultureInfo.InvariantCulture,
|
||||
"Connection retry number {0}. Delaying {1} ms before retry. Exception: {2}",
|
||||
retryState.RetryCount,
|
||||
retryState.Delay.TotalMilliseconds.ToString(CultureInfo.InvariantCulture),
|
||||
retryState.LastError.ToString()));
|
||||
|
||||
RetryPolicyUtils.RaiseAmbientRetryMessage(retryState, SqlSchemaModelErrorCodes.ServiceActions.ConnectionRetry);
|
||||
}
|
||||
|
||||
internal static void CommandFailureRetry(RetryState retryState, string commandKeyword)
|
||||
{
|
||||
Logger.Instance.Write(LogLevel.Normal, string.Format(
|
||||
CultureInfo.InvariantCulture,
|
||||
"{0} retry number {1}. Delaying {2} ms before retry. Exception: {3}",
|
||||
commandKeyword,
|
||||
retryState.RetryCount,
|
||||
retryState.Delay.TotalMilliseconds.ToString(CultureInfo.InvariantCulture),
|
||||
retryState.LastError.ToString()));
|
||||
|
||||
RetryPolicyUtils.RaiseAmbientRetryMessage(retryState, SqlSchemaModelErrorCodes.ServiceActions.CommandRetry);
|
||||
}
|
||||
|
||||
internal static void CommandFailureIgnore(RetryState retryState, string commandKeyword)
|
||||
{
|
||||
Logger.Instance.Write(LogLevel.Normal, string.Format(
|
||||
CultureInfo.InvariantCulture,
|
||||
"{0} retry number {1}. Ignoring failure. Exception: {2}",
|
||||
commandKeyword,
|
||||
retryState.RetryCount,
|
||||
retryState.LastError.ToString()));
|
||||
|
||||
RetryPolicyUtils.RaiseAmbientIgnoreMessage(retryState, SqlSchemaModelErrorCodes.ServiceActions.CommandRetry);
|
||||
}
|
||||
|
||||
internal static void CommandFailureRetry(RetryState retryState)
|
||||
{
|
||||
CommandFailureRetry(retryState, "Command");
|
||||
}
|
||||
|
||||
internal static void CommandFailureIgnore(RetryState retryState)
|
||||
{
|
||||
CommandFailureIgnore(retryState, "Command");
|
||||
}
|
||||
|
||||
internal static void CreateDatabaseCommandFailureRetry(RetryState retryState)
|
||||
{
|
||||
CommandFailureRetry(retryState, "Database Command");
|
||||
}
|
||||
|
||||
internal static void CreateDatabaseCommandFailureIgnore(RetryState retryState)
|
||||
{
|
||||
CommandFailureIgnore(retryState, "Database Command");
|
||||
}
|
||||
|
||||
internal static void ElementCommandFailureRetry(RetryState retryState)
|
||||
{
|
||||
CommandFailureRetry(retryState, "Element Command");
|
||||
}
|
||||
|
||||
internal static void ElementCommandFailureIgnore(RetryState retryState)
|
||||
{
|
||||
CommandFailureIgnore(retryState, "Element Command");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,485 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.SqlClient;
|
||||
using System.Runtime.InteropServices;
|
||||
using Microsoft.SqlTools.Hosting.Utility;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
internal static class RetryPolicyUtils
|
||||
{
|
||||
/// <summary>
|
||||
/// Approved list of transient errors that should be retryable during Network connection stages
|
||||
/// </summary>
|
||||
private static readonly HashSet<int> _retryableNetworkConnectivityErrors;
|
||||
/// <summary>
|
||||
/// Approved list of transient errors that should be retryable on Azure
|
||||
/// </summary>
|
||||
private static readonly HashSet<int> _retryableAzureErrors;
|
||||
/// <summary>
|
||||
/// Blocklist of non-transient errors that should stop retry during data transfer operations
|
||||
/// </summary>
|
||||
private static readonly HashSet<int> _nonRetryableDataTransferErrors;
|
||||
|
||||
static RetryPolicyUtils()
|
||||
{
|
||||
_retryableNetworkConnectivityErrors = new HashSet<int>
|
||||
{
|
||||
/// A severe error occurred on the current command. The results, if any, should be discarded.
|
||||
0,
|
||||
|
||||
//// DBNETLIB Error Code: 20
|
||||
//// The instance of SQL Server you attempted to connect to does not support encryption.
|
||||
(int) ProcessNetLibErrorCode.EncryptionNotSupported,
|
||||
|
||||
//// DBNETLIB Error Code: -2
|
||||
//// Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
|
||||
(int)ProcessNetLibErrorCode.Timeout,
|
||||
|
||||
//// SQL Error Code: 64
|
||||
//// A connection was successfully established with the server, but then an error occurred during the login process.
|
||||
//// (provider: TCP Provider, error: 0 - The specified network name is no longer available.)
|
||||
64,
|
||||
|
||||
//// SQL Error Code: 233
|
||||
//// The client was unable to establish a connection because of an error during connection initialization process before login.
|
||||
//// Possible causes include the following: the client tried to connect to an unsupported version of SQL Server; the server was too busy
|
||||
//// to accept new connections; or there was a resource limitation (insufficient memory or maximum allowed connections) on the server.
|
||||
//// (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)
|
||||
233,
|
||||
|
||||
//// SQL Error Code: 10053
|
||||
//// A transport-level error has occurred when receiving results from the server.
|
||||
//// An established connection was aborted by the software in your host machine.
|
||||
10053,
|
||||
|
||||
//// SQL Error Code: 10054
|
||||
//// A transport-level error has occurred when sending the request to the server.
|
||||
//// (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)
|
||||
10054,
|
||||
|
||||
//// SQL Error Code: 10060
|
||||
//// A network-related or instance-specific error occurred while establishing a connection to SQL Server.
|
||||
//// The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server
|
||||
//// is configured to allow remote connections. (provider: TCP Provider, error: 0 - A connection attempt failed
|
||||
//// because the connected party did not properly respond after a period of time, or established connection failed
|
||||
//// because connected host has failed to respond.)"}
|
||||
10060,
|
||||
|
||||
// SQL Error Code: 11001
|
||||
// A network-related or instance-specific error occurred while establishing a connection to SQL Server.
|
||||
// The server was not found or was not accessible. Verify that the instance name is correct and that SQL
|
||||
// Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - No such host is known.)
|
||||
11001,
|
||||
|
||||
//// SQL Error Code: 40613
|
||||
//// Database XXXX on server YYYY is not currently available. Please retry the connection later. If the problem persists, contact customer
|
||||
//// support, and provide them the session tracing ID of ZZZZZ.
|
||||
40613,
|
||||
};
|
||||
|
||||
_retryableAzureErrors = new HashSet<int>
|
||||
{
|
||||
//// SQL Error Code: 40
|
||||
//// Could not open a connection to SQL Server
|
||||
//// (provider: Named Pipes Provider, error: 40 Could not open a connection to SQL Server)
|
||||
40,
|
||||
|
||||
//// SQL Error Code: 121
|
||||
//// A transport-level error has occurred when receiving results from the server.
|
||||
//// (provider: TCP Provider, error: 0 - The semaphore timeout period has expired.)
|
||||
121,
|
||||
|
||||
//// SQL Error Code: 913 (noticed intermittently on SNAP runs with connected unit tests)
|
||||
//// Could not find database ID %d. Database may not be activated yet or may be in transition. Reissue the query once the database is available.
|
||||
//// If you do not think this error is due to a database that is transitioning its state and this error continues to occur, contact your primary support provider.
|
||||
//// Please have available for review the Microsoft SQL Server error log and any additional information relevant to the circumstances when the error occurred.
|
||||
913,
|
||||
|
||||
//// SQL Error Code: 1205
|
||||
//// Transaction (Process ID %d) was deadlocked on %.*ls resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
|
||||
1205,
|
||||
|
||||
//// SQL Error Code: 40501
|
||||
//// The service is currently busy. Retry the request after 10 seconds. Code: (reason code to be decoded).
|
||||
RetryPolicy.ThrottlingReason.ThrottlingErrorNumber,
|
||||
|
||||
//// SQL Error Code: 10928
|
||||
//// Resource ID: %d. The %s limit for the database is %d and has been reached.
|
||||
10928,
|
||||
|
||||
//// SQL Error Code: 10929
|
||||
//// Resource ID: %d. The %s minimum guarantee is %d, maximum limit is %d and the current usage for the database is %d.
|
||||
//// However, the server is currently too busy to support requests greater than %d for this database.
|
||||
10929,
|
||||
|
||||
//// SQL Error Code: 40143
|
||||
//// The service has encountered an error processing your request. Please try again.
|
||||
40143,
|
||||
|
||||
//// SQL Error Code: 40197
|
||||
//// The service has encountered an error processing your request. Please try again.
|
||||
40197,
|
||||
|
||||
//// Sql Error Code: 40549 (not supposed to be used anymore as of Q2 2011)
|
||||
//// Session is terminated because you have a long-running transaction. Try shortening your transaction.
|
||||
40549,
|
||||
|
||||
//// Sql Error Code: 40550 (not supposed to be used anymore as of Q2 2011)
|
||||
//// The session has been terminated because it has acquired too many locks. Try reading or modifying fewer rows in a single transaction.
|
||||
40550,
|
||||
|
||||
//// Sql Error Code: 40551 (not supposed to be used anymore as of Q2 2011)
|
||||
//// The session has been terminated because of excessive TEMPDB usage. Try modifying your query to reduce the temporary table space usage.
|
||||
40551,
|
||||
|
||||
//// Sql Error Code: 40552 (not supposed to be used anymore as of Q2 2011)
|
||||
//// The session has been terminated because of excessive transaction log space usage. Try modifying fewer rows in a single transaction.
|
||||
40552,
|
||||
|
||||
//// Sql Error Code: 40553 (not supposed to be used anymore as of Q2 2011)
|
||||
//// The session has been terminated because of excessive memory usage. Try modifying your query to process fewer rows.
|
||||
40553,
|
||||
|
||||
//// SQL Error Code: 40627
|
||||
//// Operation on server YYY and database XXX is in progress. Please wait a few minutes before trying again.
|
||||
40627,
|
||||
|
||||
//// SQL Error Code: 40671 (DB CRUD)
|
||||
//// Unable to '%.*ls' '%.*ls' on server '%.*ls'. Please retry the connection later.
|
||||
40671,
|
||||
|
||||
//// SQL Error Code: 40676 (DB CRUD)
|
||||
//// '%.*ls' request was received but may not be processed completely at this time,
|
||||
//// please query the sys.dm_operation_status table in the master database for status.
|
||||
40676,
|
||||
|
||||
//// SQL Error Code: 45133
|
||||
//// A connection failed while the operation was still in progress, and the outcome of the operation is unknown.
|
||||
45133,
|
||||
};
|
||||
|
||||
foreach(int errorNum in _retryableNetworkConnectivityErrors)
|
||||
{
|
||||
_retryableAzureErrors.Add(errorNum);
|
||||
}
|
||||
|
||||
_nonRetryableDataTransferErrors = new HashSet<int>
|
||||
{
|
||||
//// Syntax error
|
||||
156,
|
||||
|
||||
//// Cannot insert duplicate key row in object '%.*ls' with unique index '%.*ls'. The duplicate key value is %ls.
|
||||
2601,
|
||||
|
||||
//// Violation of %ls constraint '%.*ls'. Cannot insert duplicate key in object '%.*ls'. The duplicate key value is %ls.
|
||||
2627,
|
||||
|
||||
//// Cannot find index '%.*ls'.
|
||||
2727,
|
||||
|
||||
//// SqlClr stack error
|
||||
6522,
|
||||
|
||||
//// Divide by zero error encountered.
|
||||
8134,
|
||||
|
||||
//// Could not repair this error.
|
||||
8922,
|
||||
|
||||
//// Bug 1110540: This error means the table is corrupted due to hardware failure, so we do not want to retry.
|
||||
//// Table error: Object ID %d. The text, ntext, or image node at page %S_PGID, slot %d, text ID %I64d is referenced by page %S_PGID, slot %d, but was not seen in the scan.
|
||||
8965,
|
||||
|
||||
//// The query processor is unable to produce a plan because the clustered index is disabled.
|
||||
8655,
|
||||
|
||||
//// The query processor is unable to produce a plan because table is unavailable because the heap is corrupted
|
||||
8674,
|
||||
|
||||
//// SqlClr permission / load error.
|
||||
//// Example Message: An error occurred in the Microsoft .NET Framework while trying to load assembly
|
||||
10314,
|
||||
|
||||
//// '%ls' is not supported in this version of SQL Server.
|
||||
40514,
|
||||
|
||||
//// The database 'XYZ' has reached its size quota. Partition or delete data, drop indexes, or consult the documentation for possible resolutions
|
||||
40544,
|
||||
};
|
||||
}
|
||||
|
||||
public static bool IsRetryableNetworkConnectivityError(int errorNumber)
|
||||
{
|
||||
// .NET core has a bug on OSX/Linux that makes this error number always zero (issue 12472)
|
||||
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
{
|
||||
return errorNumber != 0 && _retryableNetworkConnectivityErrors.Contains(errorNumber);
|
||||
}
|
||||
return _retryableNetworkConnectivityErrors.Contains(errorNumber);
|
||||
}
|
||||
|
||||
public static bool IsRetryableAzureError(int errorNumber)
|
||||
{
|
||||
return _retryableAzureErrors.Contains(errorNumber) || _retryableNetworkConnectivityErrors.Contains(errorNumber);
|
||||
}
|
||||
|
||||
public static bool IsNonRetryableDataTransferError(int errorNumber)
|
||||
{
|
||||
return _nonRetryableDataTransferErrors.Contains(errorNumber);
|
||||
}
|
||||
|
||||
public static void AppendThrottlingDataIfIsThrottlingError(SqlException sqlException, SqlError error)
|
||||
{
|
||||
//// SQL Error Code: 40501
|
||||
//// The service is currently busy. Retry the request after 10 seconds. Code: (reason code to be decoded).
|
||||
if(error.Number == RetryPolicy.ThrottlingReason.ThrottlingErrorNumber)
|
||||
{
|
||||
// Decode the reason code from the error message to determine the grounds for throttling.
|
||||
var condition = RetryPolicy.ThrottlingReason.FromError(error);
|
||||
|
||||
// Attach the decoded values as additional attributes to the original SQL exception.
|
||||
sqlException.Data[condition.ThrottlingMode.GetType().Name] = condition.ThrottlingMode.ToString();
|
||||
sqlException.Data[condition.GetType().Name] = condition;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Calculates the length of time to delay a retry based on the number of retries up to this point.
|
||||
/// As the number of retries increases, the timeout increases exponentially based on the intervalFactor.
|
||||
/// Uses default values for the intervalFactor (<see cref="RetryPolicyDefaults.DefaultBackoffIntervalFactor"/>), minInterval
|
||||
/// (<see cref="RetryPolicyDefaults.DefaultSchemaMinInterval"/>) and maxInterval (<see cref="RetryPolicyDefaults.DefaultMaxRetryInterval"/>)
|
||||
/// </summary>
|
||||
/// <param name="currentRetryCount">Total number of retries including the current retry</param>
|
||||
/// <returns>TimeSpan defining the length of time to delay</returns>
|
||||
internal static TimeSpan CalcExponentialRetryDelayWithSchemaDefaults(int currentRetryCount)
|
||||
{
|
||||
return CalcExponentialRetryDelay(currentRetryCount,
|
||||
RetryPolicyDefaults.DefaultBackoffIntervalFactor,
|
||||
RetryPolicyDefaults.DefaultSchemaMinInterval,
|
||||
RetryPolicyDefaults.DefaultMaxRetryInterval);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Calculates the length of time to delay a retry based on the number of retries up to this point.
|
||||
/// As the number of retries increases, the timeout increases exponentially based on the intervalFactor.
|
||||
/// A very large retry count can cause huge delay, so the maxInterval is used to cap delay time at a sensible
|
||||
/// upper bound
|
||||
/// </summary>
|
||||
/// <param name="currentRetryCount">Total number of retries including the current retry</param>
|
||||
/// <param name="intervalFactor">Controls the speed at which the delay increases - the retryCount is raised to this power as
|
||||
/// part of the function </param>
|
||||
/// <param name="minInterval">Minimum interval between retries. The basis for all backoff calculations</param>
|
||||
/// <param name="maxInterval">Maximum interval between retries. Backoff will not take longer than this period.</param>
|
||||
/// <returns>TimeSpan defining the length of time to delay</returns>
|
||||
internal static TimeSpan CalcExponentialRetryDelay(int currentRetryCount, double intervalFactor, TimeSpan minInterval, TimeSpan maxInterval)
|
||||
{
|
||||
try
|
||||
{
|
||||
return checked(TimeSpan.FromMilliseconds(
|
||||
Math.Max(
|
||||
Math.Min(
|
||||
Math.Pow(intervalFactor, currentRetryCount - 1) * minInterval.TotalMilliseconds,
|
||||
maxInterval.TotalMilliseconds
|
||||
),
|
||||
minInterval.TotalMilliseconds)
|
||||
));
|
||||
}
|
||||
catch (OverflowException)
|
||||
{
|
||||
// If numbers are too large, could conceivably overflow the double.
|
||||
// Since the maxInterval is the largest TimeSpan expected, can safely return this here
|
||||
return maxInterval;
|
||||
}
|
||||
}
|
||||
|
||||
internal static void RaiseAmbientRetryMessage(RetryState retryState, int errorCode)
|
||||
{
|
||||
Action<SqlServerRetryError> retryMsgHandler = AmbientSettings.ConnectionRetryMessageHandler;
|
||||
if (retryMsgHandler != null)
|
||||
{
|
||||
string msg = SqlServerRetryError.FormatRetryMessage(
|
||||
retryState.RetryCount,
|
||||
retryState.Delay,
|
||||
retryState.LastError);
|
||||
|
||||
retryMsgHandler(new SqlServerRetryError(
|
||||
msg,
|
||||
retryState.LastError,
|
||||
retryState.RetryCount,
|
||||
errorCode,
|
||||
ErrorSeverity.Warning));
|
||||
}
|
||||
}
|
||||
|
||||
internal static void RaiseAmbientIgnoreMessage(RetryState retryState, int errorCode)
|
||||
{
|
||||
Action<SqlServerRetryError> retryMsgHandler = AmbientSettings.ConnectionRetryMessageHandler;
|
||||
if (retryMsgHandler != null)
|
||||
{
|
||||
string msg = SqlServerRetryError.FormatIgnoreMessage(
|
||||
retryState.RetryCount,
|
||||
retryState.LastError);
|
||||
|
||||
retryMsgHandler(new SqlServerRetryError(
|
||||
msg,
|
||||
retryState.LastError,
|
||||
retryState.RetryCount,
|
||||
errorCode,
|
||||
ErrorSeverity.Warning));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Traces the Schema retry information before raising the retry message
|
||||
/// </summary>
|
||||
/// <param name="retryState"></param>
|
||||
/// <param name="errorCode"></param>
|
||||
/// <param name="azureSessionId"></param>
|
||||
internal static void RaiseSchemaAmbientRetryMessage(RetryState retryState, int errorCode, Guid azureSessionId)
|
||||
{
|
||||
if (azureSessionId != Guid.Empty)
|
||||
{
|
||||
Logger.Instance.Write(LogLevel.Warning, string.Format(
|
||||
"Retry occurred: session: {0}; attempt - {1}; delay - {2}; exception - \"{3}\"",
|
||||
azureSessionId,
|
||||
retryState.RetryCount,
|
||||
retryState.Delay,
|
||||
retryState.LastError
|
||||
));
|
||||
|
||||
RaiseAmbientRetryMessage(retryState, errorCode);
|
||||
}
|
||||
}
|
||||
|
||||
#region ProcessNetLibErrorCode enumeration
|
||||
|
||||
/// <summary>
|
||||
/// Error codes reported by the DBNETLIB module.
|
||||
/// </summary>
|
||||
internal enum ProcessNetLibErrorCode
|
||||
{
|
||||
/// <summary>
|
||||
/// Zero bytes were returned
|
||||
/// </summary>
|
||||
ZeroBytes = -3,
|
||||
|
||||
/// <summary>
|
||||
/// Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
|
||||
/// </summary>
|
||||
Timeout = -2,
|
||||
|
||||
/// <summary>
|
||||
/// An unknown net lib error
|
||||
/// </summary>
|
||||
Unknown = -1,
|
||||
|
||||
/// <summary>
|
||||
/// Out of memory
|
||||
/// </summary>
|
||||
InsufficientMemory = 1,
|
||||
|
||||
/// <summary>
|
||||
/// User or machine level access denied
|
||||
/// </summary>
|
||||
AccessDenied = 2,
|
||||
|
||||
/// <summary>
|
||||
/// Connection was already busy processing another request
|
||||
/// </summary>
|
||||
ConnectionBusy = 3,
|
||||
|
||||
/// <summary>
|
||||
/// The connection was broken without a proper disconnect
|
||||
/// </summary>
|
||||
ConnectionBroken = 4,
|
||||
|
||||
/// <summary>
|
||||
/// The connection has reached a limit
|
||||
/// </summary>
|
||||
ConnectionLimit = 5,
|
||||
|
||||
/// <summary>
|
||||
/// Name resolution failed for the given server name
|
||||
/// </summary>
|
||||
ServerNotFound = 6,
|
||||
|
||||
/// <summary>
|
||||
/// Network transport could not be found
|
||||
/// </summary>
|
||||
NetworkNotFound = 7,
|
||||
|
||||
/// <summary>
|
||||
/// A resource required could not be allocated
|
||||
/// </summary>
|
||||
InsufficientResources = 8,
|
||||
|
||||
/// <summary>
|
||||
/// Network stack denied the request as too busy
|
||||
/// </summary>
|
||||
NetworkBusy = 9,
|
||||
|
||||
/// <summary>
|
||||
/// Unable to access the requested network
|
||||
/// </summary>
|
||||
NetworkAccessDenied = 10,
|
||||
|
||||
/// <summary>
|
||||
/// Internal error
|
||||
/// </summary>
|
||||
GeneralError = 11,
|
||||
|
||||
/// <summary>
|
||||
/// The network mode was set incorrectly
|
||||
/// </summary>
|
||||
IncorrectMode = 12,
|
||||
|
||||
/// <summary>
|
||||
/// The given name was not found
|
||||
/// </summary>
|
||||
NameNotFound = 13,
|
||||
|
||||
/// <summary>
|
||||
/// Connection was invalid
|
||||
/// </summary>
|
||||
InvalidConnection = 14,
|
||||
|
||||
/// <summary>
|
||||
/// A read or write error occurred
|
||||
/// </summary>
|
||||
ReadWriteError = 15,
|
||||
|
||||
/// <summary>
|
||||
/// Unable to allocate an additional handle
|
||||
/// </summary>
|
||||
TooManyHandles = 16,
|
||||
|
||||
/// <summary>
|
||||
/// The server reported an error
|
||||
/// </summary>
|
||||
ServerError = 17,
|
||||
|
||||
/// <summary>
|
||||
/// SSL failed
|
||||
/// </summary>
|
||||
SSLError = 18,
|
||||
|
||||
/// <summary>
|
||||
/// Encryption failed with an error
|
||||
/// </summary>
|
||||
EncryptionError = 19,
|
||||
|
||||
/// <summary>
|
||||
/// Remote endpoint does not support encryption
|
||||
/// </summary>
|
||||
EncryptionNotSupported = 20
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
internal class RetryState
|
||||
{
|
||||
private int _retryCount = 0;
|
||||
private TimeSpan _delay = TimeSpan.Zero;
|
||||
private Exception _lastError = null;
|
||||
private bool _isDelayDisabled = false;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the current retry attempt count.
|
||||
/// </summary>
|
||||
public int RetryCount
|
||||
{
|
||||
get
|
||||
{
|
||||
return _retryCount;
|
||||
}
|
||||
set
|
||||
{
|
||||
_retryCount = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the delay indicating how long the current thread will be suspended for before the next iteration will be invoked.
|
||||
/// </summary>
|
||||
public TimeSpan Delay
|
||||
{
|
||||
get
|
||||
{
|
||||
return _delay;
|
||||
}
|
||||
set
|
||||
{
|
||||
_delay = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the exception which caused the retry conditions to occur.
|
||||
/// </summary>
|
||||
public Exception LastError
|
||||
{
|
||||
get
|
||||
{
|
||||
return _lastError;
|
||||
}
|
||||
set
|
||||
{
|
||||
_lastError = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether we should ignore delay in order to be able to execute our tests faster
|
||||
/// </summary>
|
||||
/// <remarks>Intended for test use ONLY</remarks>
|
||||
internal bool IsDelayDisabled
|
||||
{
|
||||
get
|
||||
{
|
||||
return _isDelayDisabled;
|
||||
}
|
||||
set
|
||||
{
|
||||
_isDelayDisabled = value;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void Reset()
|
||||
{
|
||||
this.IsDelayDisabled = false;
|
||||
this.RetryCount = 0;
|
||||
this.Delay = TimeSpan.Zero;
|
||||
this.LastError = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
static class SqlConnectionHelperScripts
|
||||
{
|
||||
public const string EngineEdition = "SELECT SERVERPROPERTY('EngineEdition'), SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition'), SERVERPROPERTY ('MachineName'), (SELECT CASE WHEN EXISTS (SELECT TOP 1 1 from [sys].[all_columns] WITH (NOLOCK) WHERE name = N'xml_index_type' AND OBJECT_ID(N'sys.xml_indexes') = object_id) THEN 1 ELSE 0 END AS SXI_PRESENT)";
|
||||
public const string EngineEditionWithLock = "SELECT SERVERPROPERTY('EngineEdition'), SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition'), SERVERPROPERTY ('MachineName'), (SELECT CASE WHEN EXISTS (SELECT TOP 1 1 from [sys].[all_columns] WHERE name = N'xml_index_type' AND OBJECT_ID(N'sys.xml_indexes') = object_id) THEN 1 ELSE 0 END AS SXI_PRESENT)";
|
||||
|
||||
public const string CheckDatabaseReadonly = @"EXEC sp_dboption '{0}', 'read only'";
|
||||
|
||||
public const string GetDatabaseFilePathAndName = @"
|
||||
DECLARE @filepath nvarchar(260),
|
||||
@rc int
|
||||
|
||||
EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE',N'Software\Microsoft\MSSQLServer\MSSQLServer',N'DefaultData', @filepath output, 'no_output'
|
||||
|
||||
IF ((@filepath IS NOT NULL) AND (CHARINDEX(N'\', @filepath, len(@filepath)) = 0))
|
||||
SELECT @filepath = @filepath + N'\'
|
||||
|
||||
IF (@filepath IS NULL)
|
||||
SELECT @filepath = [sdf].[physical_name]
|
||||
FROM [master].[sys].[database_files] AS [sdf]
|
||||
WHERE [file_id] = 1
|
||||
|
||||
SELECT @filepath AS FilePath
|
||||
";
|
||||
|
||||
public const string GetDatabaseLogPathAndName = @"
|
||||
DECLARE @filepath nvarchar(260),
|
||||
@rc int
|
||||
|
||||
EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE',N'Software\Microsoft\MSSQLServer\MSSQLServer',N'DefaultLog', @filepath output, 'no_output'
|
||||
|
||||
IF ((@filepath IS NOT NULL) AND (CHARINDEX(N'\', @filepath, len(@filepath)) = 0))
|
||||
SELECT @filepath = @filepath + N'\'
|
||||
|
||||
IF (@filepath IS NULL)
|
||||
SELECT @filepath = [ldf].[physical_name]
|
||||
FROM [master].[sys].[database_files] AS [ldf]
|
||||
WHERE [file_id] = 2
|
||||
|
||||
SELECT @filepath AS FilePath
|
||||
";
|
||||
|
||||
public const string GetOsVersion = @"SELECT OSVersion = RIGHT(@@version, LEN(@@version)- 3 -charindex (' ON ', @@version))";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
/// <summary>
|
||||
/// Constants for SQL Error numbers
|
||||
/// </summary>
|
||||
internal static class SqlErrorNumbers
|
||||
{
|
||||
// Database XYZ already exists. Choose a different database name.
|
||||
internal const int DatabaseAlreadyExistsErrorNumber = 1801;
|
||||
|
||||
// Cannot drop the database 'x', because it does not exist or you do not have permission.
|
||||
internal const int DatabaseAlreadyDroppedErrorNumber = 3701;
|
||||
|
||||
// Database 'x' was created\altered successfully, but some properties could not be displayed.
|
||||
internal const int DatabaseCrudMetadataUpdateErrorNumber = 45166;
|
||||
|
||||
// Violation of PRIMARY KEY constraint 'x'.
|
||||
// Cannot insert duplicate key in object 'y'. The duplicate key value is (z).
|
||||
internal const int PrimaryKeyViolationErrorNumber = 2627;
|
||||
|
||||
// There is already an object named 'x' in the database.
|
||||
internal const int ObjectAlreadyExistsErrorNumber = 2714;
|
||||
|
||||
// Cannot drop the object 'x', because it does not exist or you do not have permission.
|
||||
internal const int ObjectAlreadyDroppedErrorNumber = 3701;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,465 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
internal static class SqlSchemaModelErrorCodes
|
||||
{
|
||||
private const int ParserErrorCodeStartIndex = 46000;
|
||||
private const int ParserErrorCodeEndIndex = 46499;
|
||||
|
||||
public static bool IsParseErrorCode(int errorCode)
|
||||
{
|
||||
return
|
||||
(errorCode >= ParserErrorCodeStartIndex) &&
|
||||
(errorCode <= ParserErrorCodeEndIndex);
|
||||
}
|
||||
|
||||
public static bool IsInterpretationErrorCode(int errorCode)
|
||||
{
|
||||
return
|
||||
(errorCode >= Interpretation.InterpretationBaseCode) &&
|
||||
(errorCode <= Interpretation.InterpretationEndCode);
|
||||
}
|
||||
|
||||
public static bool IsStatementFilterError(int errorCode)
|
||||
{
|
||||
return
|
||||
(errorCode > StatementFilter.StatementFilterBaseCode) &&
|
||||
(errorCode <= StatementFilter.StatementFilterMaxErrorCode);
|
||||
}
|
||||
|
||||
public static class StatementFilter
|
||||
{
|
||||
public const int StatementFilterBaseCode = 70000;
|
||||
|
||||
public const int UnrecognizedStatement = StatementFilterBaseCode + 1;
|
||||
public const int ServerObject = StatementFilterBaseCode + 2;
|
||||
public const int AtMostTwoPartName = StatementFilterBaseCode + 3;
|
||||
public const int AlterTableAddColumn = StatementFilterBaseCode + 4;
|
||||
public const int ConstraintAll = StatementFilterBaseCode + 5;
|
||||
public const int TriggerAll = StatementFilterBaseCode + 6;
|
||||
public const int CreateSchemaWithoutName = StatementFilterBaseCode + 7;
|
||||
public const int CreateSchemaElements = StatementFilterBaseCode + 8;
|
||||
public const int AlterAssembly = StatementFilterBaseCode + 9;
|
||||
public const int CreateStoplist = StatementFilterBaseCode + 10;
|
||||
public const int UnsupportedPermission = StatementFilterBaseCode + 11;
|
||||
public const int TopLevelExecuteWithResultSets = StatementFilterBaseCode + 12;
|
||||
public const int AlterTableAddConstraint = StatementFilterBaseCode + 13;
|
||||
public const int DatabaseOnlyObjectInServerProject = StatementFilterBaseCode + 14;
|
||||
public const int UnsupportedBySqlAzure = StatementFilterBaseCode + 15;
|
||||
public const int UnsupportedSecurityObjectKind = StatementFilterBaseCode + 16;
|
||||
public const int StatementNotSupportedForCurrentRelease = StatementFilterBaseCode + 17;
|
||||
public const int ServerPermissionsNotAllowed = StatementFilterBaseCode + 18;
|
||||
public const int DeprecatedSyntax = StatementFilterBaseCode + 19;
|
||||
public const int SetRemoteData = StatementFilterBaseCode + 20;
|
||||
public const int StatementFilterMaxErrorCode = StatementFilterBaseCode + 499;
|
||||
}
|
||||
|
||||
public static class Interpretation
|
||||
{
|
||||
public const int InterpretationBaseCode = 70500;
|
||||
|
||||
public const int InvalidTopLevelStatement = InterpretationBaseCode + 1;
|
||||
public const int InvalidAssemblySource = InterpretationBaseCode + 2;
|
||||
public const int InvalidDatabaseName = InterpretationBaseCode + 3;
|
||||
public const int OnlyTwoPartNameAllowed = InterpretationBaseCode + 4;
|
||||
public const int SecurityObjectCannotBeNull = InterpretationBaseCode + 5;
|
||||
public const int UnknownPermission = InterpretationBaseCode + 6;
|
||||
public const int UnsupportedAll = InterpretationBaseCode + 7;
|
||||
public const int InvalidColumnList = InterpretationBaseCode + 8;
|
||||
public const int ColumnsAreNotAllowed = InterpretationBaseCode + 9;
|
||||
public const int InvalidDataType = InterpretationBaseCode + 10;
|
||||
public const int InvalidObjectName = InterpretationBaseCode + 11;
|
||||
public const int InvalidObjectChildName = InterpretationBaseCode + 12;
|
||||
public const int NoGlobalTemporarySymmetricKey = InterpretationBaseCode + 13;
|
||||
public const int NoGlobalTemporarySymmetricKey_Warning = InterpretationBaseCode + 14;
|
||||
public const int NameCannotBeNull = InterpretationBaseCode + 15;
|
||||
public const int NameCannotBeNull_Warning = InterpretationBaseCode + 16;
|
||||
public const int InvalidLoginName = InterpretationBaseCode + 17;
|
||||
public const int InvalidLoginName_Warning = InterpretationBaseCode + 18;
|
||||
public const int MoreAliasesThanColumns = InterpretationBaseCode + 19;
|
||||
public const int FewerAliasesThanColumns = InterpretationBaseCode + 20;
|
||||
public const int InvalidTimestampReturnType = InterpretationBaseCode + 21;
|
||||
public const int VariableParameterAtTopLevelStatement = InterpretationBaseCode + 22;
|
||||
public const int CannotCreateTempTable = InterpretationBaseCode + 23;
|
||||
public const int MultipleNullabilityConstraintError = InterpretationBaseCode + 24;
|
||||
public const int MultipleNullabilityConstraintWarning = InterpretationBaseCode + 25;
|
||||
public const int ColumnIsntAllowedForAssemblySource = InterpretationBaseCode + 26;
|
||||
public const int InvalidUserName = InterpretationBaseCode + 27;
|
||||
public const int InvalidWindowsLogin = InterpretationBaseCode + 28;
|
||||
public const int InvalidWindowsLogin_Warning = InterpretationBaseCode + 29;
|
||||
public const int CannotHaveUsingForPrimaryXmlIndex = InterpretationBaseCode + 30;
|
||||
public const int UsingIsRequiredForSecondaryXmlIndex = InterpretationBaseCode + 31;
|
||||
public const int XmlIndexTypeIsRequiredForSecondaryXmlIndex = InterpretationBaseCode + 32;
|
||||
public const int UnsupportedAlterCryptographicProvider = InterpretationBaseCode + 33;
|
||||
public const int HttpForSoapOnly = InterpretationBaseCode + 34;
|
||||
public const int UnknownEventTypeOrGroup = InterpretationBaseCode + 35;
|
||||
public const int CannotAddLogFileToFilegroup = InterpretationBaseCode + 36;
|
||||
public const int BuiltInTypeExpected = InterpretationBaseCode + 37;
|
||||
public const int MissingArgument = InterpretationBaseCode + 38;
|
||||
public const int InvalidArgument = InterpretationBaseCode + 39;
|
||||
public const int IncompleteBoundingBoxCoordinates = InterpretationBaseCode + 40;
|
||||
public const int XMaxLessThanXMin = InterpretationBaseCode + 41;
|
||||
public const int YMaxLessThanYMin = InterpretationBaseCode + 42;
|
||||
public const int InvalidCoordinate = InterpretationBaseCode + 43;
|
||||
public const int InvalidValue = InterpretationBaseCode + 44;
|
||||
public const int InvalidIdentityValue = InterpretationBaseCode + 45;
|
||||
public const int InvalidPriorityLevel = InterpretationBaseCode + 46;
|
||||
public const int TriggerIsNotForEvent = InterpretationBaseCode + 47;
|
||||
public const int SyntaxError = InterpretationBaseCode + 48;
|
||||
public const int UnsupportedPintable = InterpretationBaseCode + 49;
|
||||
public const int DuplicateEventType = InterpretationBaseCode + 50;
|
||||
public const int ClearAndBasicAreNotAllowed = InterpretationBaseCode + 51;
|
||||
public const int AssemblyCorruptErrorCode = InterpretationBaseCode + 57;
|
||||
public const int DynamicQuery = InterpretationBaseCode + 58;
|
||||
public const int OnlyLcidAllowed = InterpretationBaseCode + 59;
|
||||
public const int WildCardNotAllowed = InterpretationBaseCode + 60;
|
||||
public const int CannotBindSchema = InterpretationBaseCode + 61;
|
||||
public const int TableTypeNotAllowFunctionCall = InterpretationBaseCode + 62;
|
||||
public const int ColumnNotAllowed = InterpretationBaseCode + 63;
|
||||
public const int OwnerRequiredForEndpoint = InterpretationBaseCode + 64;
|
||||
public const int PartitionNumberMustBeInteger = InterpretationBaseCode + 65;
|
||||
public const int DuplicatedPartitionNumber = InterpretationBaseCode + 66;
|
||||
public const int FromPartitionGreaterThanToPartition = InterpretationBaseCode + 67;
|
||||
public const int CannotSpecifyPartitionNumber = InterpretationBaseCode + 68;
|
||||
public const int MissingColumnNameError = InterpretationBaseCode + 69;
|
||||
public const int MissingColumnNameWarning = InterpretationBaseCode + 70;
|
||||
public const int UnknownTableSourceError = InterpretationBaseCode + 71;
|
||||
public const int UnknownTableSourceWarning = InterpretationBaseCode + 72;
|
||||
public const int TooManyPartsForCteOrAliasError = InterpretationBaseCode + 73;
|
||||
public const int TooManyPartsForCteOrAliasWarning = InterpretationBaseCode + 74;
|
||||
public const int ServerAuditInvalidQueueDelayValue = InterpretationBaseCode + 75;
|
||||
public const int WrongEventType = InterpretationBaseCode + 76;
|
||||
public const int CantCreateUddtFromXmlError = InterpretationBaseCode + 77;
|
||||
public const int CantCreateUddtFromXmlWarning = InterpretationBaseCode + 78;
|
||||
public const int CantCreateUddtFromUddtError = InterpretationBaseCode + 79;
|
||||
public const int CantCreateUddtFromUddtWarning = InterpretationBaseCode + 80;
|
||||
public const int ForReplicationIsNotSupported = InterpretationBaseCode + 81;
|
||||
public const int TooLongIdentifier = InterpretationBaseCode + 82;
|
||||
public const int InvalidLanguageTerm = InterpretationBaseCode + 83;
|
||||
public const int InvalidParameterOrOption = InterpretationBaseCode + 85;
|
||||
public const int TableLevelForeignKeyWithNoColumnsError = InterpretationBaseCode + 86;
|
||||
public const int TableLevelForeignKeyWithNoColumnsWarning = InterpretationBaseCode + 87;
|
||||
public const int ConstraintEnforcementIsIgnored = InterpretationBaseCode + 88;
|
||||
public const int DeprecatedBackupOption = InterpretationBaseCode + 89;
|
||||
public const int UndeclaredVariableParameter = InterpretationBaseCode + 90;
|
||||
public const int UnsupportedAlgorithm = InterpretationBaseCode + 91;
|
||||
public const int InvalidLanguageNameOrAliasWarning = InterpretationBaseCode + 92;
|
||||
public const int UnsupportedRevoke = InterpretationBaseCode + 93;
|
||||
public const int InvalidPermissionTypeAgainstObject = InterpretationBaseCode + 94;
|
||||
public const int InvalidPermissionObjectType = InterpretationBaseCode + 95;
|
||||
public const int CannotDetermineSecurableFromPermission = InterpretationBaseCode + 96;
|
||||
public const int InvalidColumnListForSecurableType = InterpretationBaseCode + 97;
|
||||
public const int InvalidUserDefaultLanguage = InterpretationBaseCode + 98;
|
||||
public const int CannotSpecifyGridParameterForAutoGridSpatialIndex = InterpretationBaseCode + 99;
|
||||
public const int UnsupportedSpatialTessellationScheme = InterpretationBaseCode + 100;
|
||||
public const int CannotSpecifyBoundingBoxForGeography = InterpretationBaseCode + 101;
|
||||
public const int InvalidSearchPropertyId = InterpretationBaseCode + 102;
|
||||
public const int OnlineSpatialIndex = InterpretationBaseCode + 103;
|
||||
public const int SqlCmdVariableInObjectName = InterpretationBaseCode + 104;
|
||||
public const int SubqueriesNotAllowed = InterpretationBaseCode + 105;
|
||||
public const int ArgumentReplaceNotSupported = InterpretationBaseCode + 106;
|
||||
public const int DuplicateArgument = InterpretationBaseCode + 107;
|
||||
public const int UnsupportedNoPopulationChangeTrackingOption = InterpretationBaseCode + 108;
|
||||
public const int UnsupportedResourceManagerLocationProperty = InterpretationBaseCode + 109;
|
||||
public const int RequiredExternalDataSourceLocationPropertyMissing = InterpretationBaseCode + 110;
|
||||
public const int UnsupportedSerdeMethodProperty = InterpretationBaseCode + 111;
|
||||
public const int UnsupportedFormatOptionsProperty = InterpretationBaseCode + 112;
|
||||
public const int RequiredSerdeMethodPropertyMissing = InterpretationBaseCode + 113;
|
||||
public const int TableLevelIndexWithNoColumnsError = InterpretationBaseCode + 114;
|
||||
public const int TableLevelIndexWithNoColumnsWarning = InterpretationBaseCode + 115;
|
||||
public const int InvalidIndexOption = InterpretationBaseCode + 116;
|
||||
public const int TypeAndSIDMustBeUsedTogether = InterpretationBaseCode + 117;
|
||||
public const int TypeCannotBeUsedWithLoginOption = InterpretationBaseCode + 118;
|
||||
public const int InvalidUserType = InterpretationBaseCode + 119;
|
||||
public const int InvalidUserSid = InterpretationBaseCode + 120;
|
||||
public const int InvalidPartitionFunctionDataType = InterpretationBaseCode + 121;
|
||||
public const int RequiredExternalTableLocationPropertyMissing = InterpretationBaseCode + 122;
|
||||
public const int UnsupportedRejectSampleValueProperty = InterpretationBaseCode + 123;
|
||||
public const int RequiredExternalDataSourceDatabasePropertyMissing = InterpretationBaseCode + 124;
|
||||
public const int RequiredExternalDataSourceShardMapNamePropertyMissing = InterpretationBaseCode + 125;
|
||||
public const int InvalidPropertyForExternalDataSourceType = InterpretationBaseCode + 126;
|
||||
public const int UnsupportedExternalDataSourceTypeInCurrentPlatform = InterpretationBaseCode + 127;
|
||||
public const int UnsupportedExternalTableProperty = InterpretationBaseCode + 128;
|
||||
public const int MaskingFunctionIsEmpty = InterpretationBaseCode + 129;
|
||||
public const int InvalidMaskingFunctionFormat = InterpretationBaseCode + 130;
|
||||
public const int CannotCreateAlwaysEncryptedObject = InterpretationBaseCode + 131;
|
||||
public const int ExternalTableSchemaOrObjectNameMissing = InterpretationBaseCode + 132;
|
||||
public const int CannotCreateTemporalTableWithoutHistoryTableName = InterpretationBaseCode + 133;
|
||||
public const int TemporalPeriodColumnMustNotBeNullable = InterpretationBaseCode + 134;
|
||||
public const int InterpretationEndCode = InterpretationBaseCode + 499;
|
||||
}
|
||||
|
||||
public static class ModelBuilder
|
||||
{
|
||||
private const int ModelBuilderBaseCode = 71000;
|
||||
|
||||
public const int CannotFindMainElement = ModelBuilderBaseCode + 1;
|
||||
public const int CannotFindColumnSourceGrantForColumnRevoke = ModelBuilderBaseCode + 2;
|
||||
public const int AssemblyReferencesNotSupported = ModelBuilderBaseCode + 3;
|
||||
public const int NoSourceForColumn = ModelBuilderBaseCode + 5;
|
||||
public const int MoreThanOneStatementPerBatch = ModelBuilderBaseCode + 6;
|
||||
public const int MaximumSizeExceeded = ModelBuilderBaseCode + 7;
|
||||
}
|
||||
|
||||
public static class Validation
|
||||
{
|
||||
private const int ValidationBaseCode = 71500;
|
||||
|
||||
public const int AllReferencesMustBeResolved = ValidationBaseCode + 1;
|
||||
public const int AllReferencesMustBeResolved_Warning = ValidationBaseCode + 2;
|
||||
public const int AssemblyVisibilityRule = ValidationBaseCode + 3;
|
||||
public const int BreakContinueOnlyInWhile = ValidationBaseCode + 4;
|
||||
public const int ClrObjectAssemblyReference_InvalidAssembly = ValidationBaseCode + 5;
|
||||
public const int ClrObjectAssemblyReference = ValidationBaseCode + 6;
|
||||
public const int ColumnUserDefinedTableType = ValidationBaseCode + 7;
|
||||
public const int DuplicateName = ValidationBaseCode + 8;
|
||||
public const int DuplicateName_Warning = ValidationBaseCode + 9;
|
||||
public const int DuplicateVariableParameterName_TemporaryTable = ValidationBaseCode + 10;
|
||||
public const int DuplicateVariableParameterName_Variable = ValidationBaseCode + 11;
|
||||
public const int EndPointRule_DATABASE_MIRRORING = ValidationBaseCode + 12;
|
||||
public const int EndPointRule_SERVICE_BROKER = ValidationBaseCode + 13;
|
||||
public const int ForeignKeyColumnTypeNumberMustMatch_NumberOfColumns = ValidationBaseCode + 14;
|
||||
public const int ForeignKeyColumnTypeNumberMustMatch_TypeMismatch = ValidationBaseCode + 15;
|
||||
public const int ForeignKeyReferencePKUnique = ValidationBaseCode + 16;
|
||||
public const int FullTextIndexColumn = ValidationBaseCode + 17;
|
||||
public const int IdentityColumnValidation_InvalidType = ValidationBaseCode + 18;
|
||||
public const int IdentityColumnValidation_MoreThanOneIdentity = ValidationBaseCode + 19;
|
||||
public const int InsertIntoIdentityColumn = ValidationBaseCode + 20;
|
||||
public const int MatchingSignatureNotFoundInAssembly = ValidationBaseCode + 21;
|
||||
public const int MatchingTypeNotFoundInAssembly = ValidationBaseCode + 22;
|
||||
public const int MaxColumnInIndexKey = ValidationBaseCode + 25;
|
||||
public const int MaxColumnInTable_1024Columns = ValidationBaseCode + 26;
|
||||
public const int MultiFullTextIndexOnTable = ValidationBaseCode + 28;
|
||||
public const int NonNullPrimaryKey_NonNullSimpleColumn = ValidationBaseCode + 29;
|
||||
public const int NonNullPrimaryKey_NotPersistedComputedColumn = ValidationBaseCode + 30;
|
||||
public const int OneClusteredIndex = ValidationBaseCode + 31;
|
||||
public const int OneMasterKey = ValidationBaseCode + 32;
|
||||
public const int OnePrimaryKey = ValidationBaseCode + 33;
|
||||
public const int PrimaryXMLIndexClustered = ValidationBaseCode + 34;
|
||||
public const int SelectAssignRetrieval = ValidationBaseCode + 35;
|
||||
public const int SubroutineParameterReadOnly_NonUDTTReadOnly = ValidationBaseCode + 36;
|
||||
public const int SubroutineParameterReadOnly_UDTTReadOnly = ValidationBaseCode + 37;
|
||||
public const int UsingXMLIndex = ValidationBaseCode + 38;
|
||||
public const int VardecimalOptionRule = ValidationBaseCode + 39;
|
||||
public const int WildCardExpansion = ValidationBaseCode + 40;
|
||||
public const int WildCardExpansion_Warning = ValidationBaseCode + 41;
|
||||
public const int XMLIndexOnlyXMLTypeColumn = ValidationBaseCode + 42;
|
||||
public const int TableVariablePrefix = ValidationBaseCode + 44;
|
||||
public const int FileStream_FILESTREAMON = ValidationBaseCode + 45;
|
||||
public const int FileStream_ROWGUIDCOLUMN = ValidationBaseCode + 46;
|
||||
public const int MaxColumnInTable100_Columns = ValidationBaseCode + 47;
|
||||
public const int XMLIndexOnlyXMLTypeColumn_SparseColumnSet = ValidationBaseCode + 48;
|
||||
public const int ClrObjectAssemblyReference_ParameterTypeMismatch = ValidationBaseCode + 50;
|
||||
public const int OneDefaultConstraintPerColumn = ValidationBaseCode + 51;
|
||||
public const int PermissionStatementValidation_DuplicatePermissionOnSecurable = ValidationBaseCode + 52;
|
||||
public const int PermissionStatementValidation_ConflictingPermissionsOnSecurable = ValidationBaseCode + 53;
|
||||
public const int PermissionStatementValidation_ConflictingColumnStatements = ValidationBaseCode + 54;
|
||||
public const int PermissionOnObjectSecurableValidation_InvalidPermissionForObject = ValidationBaseCode + 55;
|
||||
public const int SequenceValueValidation_ValueOutOfRange = ValidationBaseCode + 56;
|
||||
public const int SequenceValueValidation_InvalidDataType = ValidationBaseCode + 57;
|
||||
public const int MismatchedName_Warning = ValidationBaseCode + 58;
|
||||
public const int DifferentNameCasing_Warning = ValidationBaseCode + 59;
|
||||
public const int OneClusteredIndexAzure = ValidationBaseCode + 60;
|
||||
public const int AllExternalReferencesMustBeResolved = ValidationBaseCode + 61;
|
||||
public const int AllExternalReferencesMustBeResolved_Warning = ValidationBaseCode + 62;
|
||||
public const int ExternalObjectWildCardExpansion_Warning = ValidationBaseCode + 63;
|
||||
public const int UnsupportedElementForDataPackage = ValidationBaseCode + 64;
|
||||
public const int InvalidFileStreamOptions = ValidationBaseCode + 65;
|
||||
public const int StorageShouldNotSetOnDifferentInstance = ValidationBaseCode + 66;
|
||||
public const int TableShouldNotHaveStorage = ValidationBaseCode + 67;
|
||||
public const int MemoryOptimizedObjectsValidation_NonMemoryOptimizedTableCannotBeAccessed = ValidationBaseCode + 68;
|
||||
public const int MemoryOptimizedObjectsValidation_SyntaxNotSupportedOnHekatonElement = ValidationBaseCode + 69;
|
||||
public const int MemoryOptimizedObjectsValidation_ValidatePrimaryKeyForSchemaAndDataTables = ValidationBaseCode + 70;
|
||||
public const int MemoryOptimizedObjectsValidation_ValidatePrimaryKeyForSchemaOnlyTables = ValidationBaseCode + 71;
|
||||
public const int MemoryOptimizedObjectsValidation_OnlyNotNullableColumnsOnIndexes = ValidationBaseCode + 72;
|
||||
public const int MemoryOptimizedObjectsValidation_HashIndexesOnlyOnMemoryOptimizedObjects = ValidationBaseCode + 73;
|
||||
public const int MemoryOptimizedObjectsValidation_OptionOnlyForHashIndexes = ValidationBaseCode + 74;
|
||||
public const int IncrementalStatisticsValidation_FilterNotSupported = ValidationBaseCode + 75;
|
||||
public const int IncrementalStatisticsValidation_ViewNotSupported = ValidationBaseCode + 76;
|
||||
public const int IncrementalStatisticsValidation_IndexNotPartitionAligned = ValidationBaseCode + 77;
|
||||
public const int AzureV12SurfaceAreaValidation = ValidationBaseCode + 78;
|
||||
public const int DuplicatedTargetObjectReferencesInSecurityPolicy = ValidationBaseCode + 79;
|
||||
public const int MultipleSecurityPoliciesOnTargetObject = ValidationBaseCode + 80;
|
||||
public const int ExportedRowsMayBeIncomplete = ValidationBaseCode + 81;
|
||||
public const int ExportedRowsMayContainSomeMaskedData = ValidationBaseCode + 82;
|
||||
public const int EncryptedColumnValidation_EncryptedPrimaryKey = ValidationBaseCode + 83;
|
||||
public const int EncryptedColumnValidation_EncryptedUniqueColumn = ValidationBaseCode + 84;
|
||||
public const int EncryptedColumnValidation_EncryptedCheckConstraint = ValidationBaseCode + 85;
|
||||
public const int EncryptedColumnValidation_PrimaryKeyForeignKeyEncryptionMismatch = ValidationBaseCode + 86;
|
||||
public const int EncryptedColumnValidation_UnsupportedDataType = ValidationBaseCode + 87;
|
||||
public const int MemoryOptimizedObjectsValidation_UnSupportedOption = ValidationBaseCode + 88;
|
||||
public const int MasterKeyExistsForCredential = ValidationBaseCode + 89;
|
||||
public const int MemoryOptimizedObjectsValidation_InvalidForeignKeyRelationship = ValidationBaseCode + 90;
|
||||
public const int MemoryOptimizedObjectsValidation_UnsupportedForeignKeyReference = ValidationBaseCode + 91;
|
||||
public const int EncryptedColumnValidation_RowGuidColumn = ValidationBaseCode + 92;
|
||||
public const int EncryptedColumnValidation_EncryptedClusteredIndex = ValidationBaseCode + 93;
|
||||
public const int EncryptedColumnValidation_EncryptedNonClusteredIndex = ValidationBaseCode + 94;
|
||||
public const int EncryptedColumnValidation_DependentComputedColumn = ValidationBaseCode + 95;
|
||||
public const int EncryptedColumnValidation_EncryptedFullTextColumn = ValidationBaseCode + 96;
|
||||
public const int EncryptedColumnValidation_EncryptedSparseColumnSet = ValidationBaseCode + 97;
|
||||
public const int EncryptedColumnValidation_EncryptedStatisticsColumn = ValidationBaseCode + 98;
|
||||
public const int EncryptedColumnValidation_EncryptedPartitionColumn = ValidationBaseCode + 99;
|
||||
public const int EncryptedColumnValidation_PrimaryKeyChangeTrackingColumn = ValidationBaseCode + 100;
|
||||
public const int EncryptedColumnValidation_ChangeDataCaptureOn = ValidationBaseCode + 101;
|
||||
public const int EncryptedColumnValidation_FilestreamColumn = ValidationBaseCode + 102;
|
||||
public const int EncryptedColumnValidation_MemoryOptimizedTable = ValidationBaseCode + 103;
|
||||
public const int EncryptedColumnValidation_MaskedEncryptedColumn = ValidationBaseCode + 104;
|
||||
public const int EncryptedColumnValidation_EncryptedIdentityColumn = ValidationBaseCode + 105;
|
||||
public const int EncryptedColumnValidation_EncryptedDefaultConstraint = ValidationBaseCode + 106;
|
||||
public const int TemporalValidation_InvalidPeriodSpecification = ValidationBaseCode + 107;
|
||||
public const int TemporalValidation_MultipleCurrentTables = ValidationBaseCode + 108;
|
||||
public const int TemporalValidation_SchemaMismatch = ValidationBaseCode + 109;
|
||||
public const int TemporalValidation_ComputedColumns = ValidationBaseCode + 110;
|
||||
public const int TemporalValidation_NoAlwaysEncryptedCols = ValidationBaseCode + 111;
|
||||
public const int IndexesOnExternalTable = ValidationBaseCode + 112;
|
||||
public const int TriggersOnExternalTable = ValidationBaseCode + 113;
|
||||
public const int StretchValidation_ExportBlocked = ValidationBaseCode + 114;
|
||||
public const int StretchValidation_ImportBlocked = ValidationBaseCode + 115;
|
||||
public const int DeploymentBlocked = ValidationBaseCode + 116;
|
||||
public const int NoBlockPredicatesTargetingViews = ValidationBaseCode + 117;
|
||||
public const int SchemaBindingOnSecurityPoliciesValidation = ValidationBaseCode + 118;
|
||||
public const int SecurityPredicateTargetObjectValidation = ValidationBaseCode + 119;
|
||||
public const int TemporalValidation_SchemaMismatch_ColumnCount = ValidationBaseCode + 120;
|
||||
public const int AkvValidation_AuthenticationFailed = ValidationBaseCode + 121;
|
||||
public const int TemporalValidation_PrimaryKey = ValidationBaseCode + 122;
|
||||
}
|
||||
|
||||
public static class SqlMSBuild
|
||||
{
|
||||
private const int MSBuildBaseCode = 72000;
|
||||
|
||||
public const int FileDoesNotExist = MSBuildBaseCode + 1;
|
||||
public const int UnknownDeployError = MSBuildBaseCode + 2;
|
||||
public const int InvalidProperty = MSBuildBaseCode + 3;
|
||||
public const int CollationError = MSBuildBaseCode + 4;
|
||||
public const int InvalidSqlClrDefinition = MSBuildBaseCode + 5;
|
||||
public const int SQL_PrePostFatalParserError = MSBuildBaseCode + 6;
|
||||
public const int SQL_PrePostSyntaxCheckError = MSBuildBaseCode + 7;
|
||||
public const int SQL_PrePostVariableError = MSBuildBaseCode + 8;
|
||||
public const int SQL_CycleError = MSBuildBaseCode + 9;
|
||||
public const int SQL_NoConnectionStringNoServerVerification = MSBuildBaseCode + 10;
|
||||
public const int SQL_VardecimalMismatch = MSBuildBaseCode + 11;
|
||||
public const int SQL_NoAlterFileSystemObject = MSBuildBaseCode + 12;
|
||||
public const int SQL_SqlCmdVariableOverrideError = MSBuildBaseCode + 13;
|
||||
public const int SQL_BatchError = MSBuildBaseCode + 14;
|
||||
public const int SQL_DataLossError = MSBuildBaseCode + 15;
|
||||
public const int SQL_ExecutionError = MSBuildBaseCode + 16;
|
||||
public const int SQL_UncheckedConstraint = MSBuildBaseCode + 17;
|
||||
public const int SQL_UnableToImportElements = MSBuildBaseCode + 18;
|
||||
public const int SQL_TargetReadOnlyError = MSBuildBaseCode + 19;
|
||||
public const int SQL_UnsupportedCompatibilityMode = MSBuildBaseCode + 20;
|
||||
public const int SQL_IncompatibleDSPVersions = MSBuildBaseCode + 21;
|
||||
public const int SQL_CouldNotLoadSymbols = MSBuildBaseCode + 22;
|
||||
public const int SQL_ContainmentlMismatch = MSBuildBaseCode + 23;
|
||||
public const int SQL_PrePostExpectedNoTSqlError = MSBuildBaseCode + 24;
|
||||
public const int ReferenceErrorCode = MSBuildBaseCode + 25;
|
||||
public const int FileError = MSBuildBaseCode + 26;
|
||||
public const int MissingReference = MSBuildBaseCode + 27;
|
||||
public const int SerializationError = MSBuildBaseCode + 28;
|
||||
public const int DeploymentContributorVerificationError = MSBuildBaseCode + 29;
|
||||
public const int Deployment_PossibleRuntimeError = MSBuildBaseCode + 30;
|
||||
public const int Deployment_BlockingDependency = MSBuildBaseCode + 31;
|
||||
public const int Deployment_TargetObjectLoss = MSBuildBaseCode + 32;
|
||||
public const int Deployment_MissingDependency = MSBuildBaseCode + 33;
|
||||
public const int Deployment_PossibleDataLoss = MSBuildBaseCode + 34;
|
||||
public const int Deployment_NotSupportedOperation = MSBuildBaseCode + 35;
|
||||
public const int Deployment_Information = MSBuildBaseCode + 36;
|
||||
public const int Deployment_UnsupportedDSP = MSBuildBaseCode + 37;
|
||||
public const int Deployment_SkipManagementScopedChange = MSBuildBaseCode + 38;
|
||||
public const int StaticCodeAnalysis_GeneralException = MSBuildBaseCode + 39;
|
||||
public const int StaticCodeAnalysis_ResultsFileIOException = MSBuildBaseCode + 40;
|
||||
public const int StaticCodeAnalysis_FailToCreateTaskHost = MSBuildBaseCode + 41;
|
||||
public const int StaticCodeAnalysis_InvalidDataSchemaModel = MSBuildBaseCode + 42;
|
||||
public const int StaticCodeAnalysis_InvalidElement = MSBuildBaseCode + 43;
|
||||
public const int Deployment_NoClusteredIndex = MSBuildBaseCode + 44;
|
||||
public const int Deployment_DetailedScriptExecutionError = MSBuildBaseCode + 45;
|
||||
}
|
||||
|
||||
public static class Refactoring
|
||||
{
|
||||
private const int RefactoringBaseCode = 72500;
|
||||
|
||||
public const int FailedToLoadFile = RefactoringBaseCode + 1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// These codes are used to message specific actions for extract and deployment operations.
|
||||
/// The primary consumer of these codes is the Import/Export service.
|
||||
/// </summary>
|
||||
public static class ServiceActions
|
||||
{
|
||||
public const int ServiceActionsBaseCode = 73000;
|
||||
public const int ServiceActionsMaxCode = 73000 + 0xFF;
|
||||
|
||||
// Note: These codes are defined so that the lower 3 bits indicate one of three
|
||||
// event stages: Started (0x01), Done/Complete (0x02), Done/Failed (0x04)
|
||||
public const int DeployInitializeStart = ServiceActionsBaseCode + 0x01;
|
||||
public const int DeployInitializeSuccess = ServiceActionsBaseCode + 0x02;
|
||||
public const int DeployInitializeFailure = ServiceActionsBaseCode + 0x04;
|
||||
|
||||
public const int DeployAnalysisStart = ServiceActionsBaseCode + 0x11;
|
||||
public const int DeployAnalysisSuccess = ServiceActionsBaseCode + 0x12;
|
||||
public const int DeployAnalysisFailure = ServiceActionsBaseCode + 0x14;
|
||||
|
||||
public const int DeployExecuteScriptStart = ServiceActionsBaseCode + 0x21;
|
||||
public const int DeployExecuteScriptSuccess = ServiceActionsBaseCode + 0x22;
|
||||
public const int DeployExecuteScriptFailure = ServiceActionsBaseCode + 0x24;
|
||||
|
||||
public const int DataImportStart = ServiceActionsBaseCode + 0x41;
|
||||
public const int DataImportSuccess = ServiceActionsBaseCode + 0x42;
|
||||
public const int DataImportFailure = ServiceActionsBaseCode + 0x44;
|
||||
|
||||
public const int ExtractSchemaStart = ServiceActionsBaseCode + 0x61;
|
||||
public const int ExtractSchemaSuccess = ServiceActionsBaseCode + 0x62;
|
||||
public const int ExtractSchemaFailure = ServiceActionsBaseCode + 0x64;
|
||||
|
||||
public const int ExportVerifyStart = ServiceActionsBaseCode + 0x71;
|
||||
public const int ExportVerifySuccess = ServiceActionsBaseCode + 0x72;
|
||||
public const int ExportVerifyFailure = ServiceActionsBaseCode + 0x74;
|
||||
|
||||
public const int ExportDataStart = ServiceActionsBaseCode + 0x81;
|
||||
public const int ExportDataSuccess = ServiceActionsBaseCode + 0x82;
|
||||
public const int ExportDataFailure = ServiceActionsBaseCode + 0x84;
|
||||
|
||||
public const int EnableIndexesDataStart = ServiceActionsBaseCode + 0xb1;
|
||||
public const int EnableIndexesDataSuccess = ServiceActionsBaseCode + 0xb2;
|
||||
public const int EnableIndexesDataFailure = ServiceActionsBaseCode + 0xb4;
|
||||
|
||||
public const int DisableIndexesDataStart = ServiceActionsBaseCode + 0xc1;
|
||||
public const int DisableIndexesDataSuccess = ServiceActionsBaseCode + 0xc2;
|
||||
public const int DisableIndexesDataFailure = ServiceActionsBaseCode + 0xc4;
|
||||
|
||||
public const int EnableIndexDataStart = ServiceActionsBaseCode + 0xd1;
|
||||
public const int EnableIndexDataSuccess = ServiceActionsBaseCode + 0xd2;
|
||||
public const int EnableIndexDataFailure = ServiceActionsBaseCode + 0xd4;
|
||||
|
||||
public const int DisableIndexDataStart = ServiceActionsBaseCode + 0xe1;
|
||||
public const int DisableIndexDataSuccess = ServiceActionsBaseCode + 0xe2;
|
||||
public const int DisableIndexDataFailure = ServiceActionsBaseCode + 0xe4;
|
||||
|
||||
public const int ColumnEncryptionDataMigrationStart = ServiceActionsBaseCode + 0xf1;
|
||||
public const int ColumnEncryptionDataMigrationSuccess = ServiceActionsBaseCode + 0xf2;
|
||||
public const int ColumnEncryptionDataMigrationFailure = ServiceActionsBaseCode + 0xf4;
|
||||
|
||||
// These codes do not set the lower 3 bits
|
||||
public const int ConnectionRetry = ServiceActionsBaseCode + 0x90;
|
||||
public const int CommandRetry = ServiceActionsBaseCode + 0x91;
|
||||
public const int GeneralProgress = ServiceActionsBaseCode + 0x92;
|
||||
public const int TypeFidelityLoss = ServiceActionsBaseCode + 0x93;
|
||||
public const int TableProgress = ServiceActionsBaseCode + 0x94;
|
||||
public const int ImportBlocked = ServiceActionsBaseCode + 0x95;
|
||||
public const int DataPrecisionLoss = ServiceActionsBaseCode + 0x96;
|
||||
public const int DataRowCount = ServiceActionsBaseCode + 0x98;
|
||||
|
||||
public const int DataException = ServiceActionsBaseCode + 0xA0;
|
||||
public const int LogEntry = ServiceActionsBaseCode + 0xA1;
|
||||
public const int GeneralInfo = ServiceActionsBaseCode + 0xA2;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents an error produced by SQL Server database schema provider
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
internal class SqlServerError : DataSchemaError
|
||||
{
|
||||
private const string SqlServerPrefix = "SQL";
|
||||
private const string DefaultHelpKeyword = "vs.teamsystem.datatools.DefaultErrorMessageHelp";
|
||||
|
||||
public SqlServerError(string message, string document, ErrorSeverity severity)
|
||||
: this(message, null, document, 0, 0, Constants.UndefinedErrorCode, severity)
|
||||
{
|
||||
}
|
||||
|
||||
public SqlServerError(string message, string document, int errorCode, ErrorSeverity severity)
|
||||
: this(message, null, document, 0, 0, errorCode, severity)
|
||||
{
|
||||
}
|
||||
|
||||
public SqlServerError(Exception exception, string document, int errorCode, ErrorSeverity severity)
|
||||
: this(exception, document, 0, 0, errorCode, severity)
|
||||
{
|
||||
}
|
||||
|
||||
public SqlServerError(string message, string document, int line, int column, ErrorSeverity severity)
|
||||
: this(message, null, document, line, column, Constants.UndefinedErrorCode, severity)
|
||||
{
|
||||
}
|
||||
|
||||
public SqlServerError(
|
||||
Exception exception,
|
||||
string document,
|
||||
int line,
|
||||
int column,
|
||||
int errorCode,
|
||||
ErrorSeverity severity) :
|
||||
this(exception.Message, exception, document, line, column, errorCode, severity)
|
||||
{
|
||||
}
|
||||
|
||||
public SqlServerError(
|
||||
string message,
|
||||
string document,
|
||||
int line,
|
||||
int column,
|
||||
int errorCode,
|
||||
ErrorSeverity severity) :
|
||||
this(message, null, document, line, column, errorCode, severity)
|
||||
{
|
||||
}
|
||||
|
||||
public SqlServerError(
|
||||
string message,
|
||||
Exception exception,
|
||||
string document,
|
||||
int line,
|
||||
int column,
|
||||
int errorCode,
|
||||
ErrorSeverity severity) :
|
||||
base(message, exception, document, line, column, SqlServerPrefix, errorCode, severity)
|
||||
{
|
||||
this.HelpKeyword = DefaultHelpKeyword;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Globalization;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection.ReliableConnection
|
||||
{
|
||||
/// <summary>
|
||||
/// Captures extended information about a specific error and a retry
|
||||
/// </summary>
|
||||
internal class SqlServerRetryError : SqlServerError
|
||||
{
|
||||
private int _retryCount;
|
||||
private int _errorCode;
|
||||
|
||||
public SqlServerRetryError(string message, Exception ex, int retryCount, int errorCode, ErrorSeverity severity)
|
||||
: base(ex, message, errorCode, severity)
|
||||
{
|
||||
_retryCount = retryCount;
|
||||
_errorCode = errorCode;
|
||||
}
|
||||
|
||||
public int RetryCount
|
||||
{
|
||||
get { return _retryCount; }
|
||||
}
|
||||
|
||||
public static string FormatRetryMessage(int retryCount, TimeSpan delay, Exception transientException)
|
||||
{
|
||||
string message = string.Format(
|
||||
CultureInfo.CurrentCulture,
|
||||
Resources.RetryOnException,
|
||||
retryCount,
|
||||
delay.TotalMilliseconds.ToString(CultureInfo.CurrentCulture),
|
||||
transientException.ToString());
|
||||
|
||||
return message;
|
||||
}
|
||||
|
||||
public static string FormatIgnoreMessage(int retryCount, Exception exception)
|
||||
{
|
||||
string message = string.Format(
|
||||
CultureInfo.CurrentCulture,
|
||||
Resources.IgnoreOnException,
|
||||
retryCount,
|
||||
exception.ToString());
|
||||
|
||||
return message;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System.Data.Common;
|
||||
using Microsoft.SqlTools.CoreServices.Connection.ReliableConnection;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Connection
|
||||
{
|
||||
/// <summary>
|
||||
/// Factory class to create SqlClientConnections
|
||||
/// The purpose of the factory is to make it easier to mock out the database
|
||||
/// in 'offline' unit test scenarios.
|
||||
/// </summary>
|
||||
public class SqlConnectionFactory : ISqlConnectionFactory
|
||||
{
|
||||
/// <summary>
|
||||
/// Creates a new SqlConnection object
|
||||
/// </summary>
|
||||
public DbConnection CreateSqlConnection(string connectionString)
|
||||
{
|
||||
RetryPolicy connectionRetryPolicy = RetryPolicyFactory.CreateDefaultConnectionRetryPolicy();
|
||||
RetryPolicy commandRetryPolicy = RetryPolicyFactory.CreateDefaultConnectionRetryPolicy();
|
||||
return new ReliableSqlConnection(connectionString, connectionRetryPolicy, commandRetryPolicy);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,428 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Linq;
|
||||
using Microsoft.SqlTools.Hosting.Utility;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.LanguageServices
|
||||
{
|
||||
/// <summary>
|
||||
/// Main class for the Binding Queue
|
||||
/// </summary>
|
||||
public class BindingQueue<T> : IDisposable where T : IBindingContext, new()
|
||||
{
|
||||
internal const int QueueThreadStackSize = 5 * 1024 * 1024;
|
||||
|
||||
private CancellationTokenSource processQueueCancelToken = null;
|
||||
|
||||
private ManualResetEvent itemQueuedEvent = new ManualResetEvent(initialState: false);
|
||||
|
||||
private object bindingQueueLock = new object();
|
||||
|
||||
private LinkedList<QueueItem> bindingQueue = new LinkedList<QueueItem>();
|
||||
|
||||
private object bindingContextLock = new object();
|
||||
|
||||
private Task queueProcessorTask;
|
||||
|
||||
/// <summary>
|
||||
/// Map from context keys to binding context instances
|
||||
/// Internal for testing purposes only
|
||||
/// </summary>
|
||||
internal Dictionary<string, IBindingContext> BindingContextMap { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Constructor for a binding queue instance
|
||||
/// </summary>
|
||||
public BindingQueue()
|
||||
{
|
||||
this.BindingContextMap = new Dictionary<string, IBindingContext>();
|
||||
this.StartQueueProcessor();
|
||||
}
|
||||
|
||||
public void StartQueueProcessor()
|
||||
{
|
||||
this.queueProcessorTask = StartQueueProcessorAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stops the binding queue by sending cancellation request
|
||||
/// </summary>
|
||||
/// <param name="timeout"></param>
|
||||
public bool StopQueueProcessor(int timeout)
|
||||
{
|
||||
this.processQueueCancelToken.Cancel();
|
||||
return this.queueProcessorTask.Wait(timeout);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if cancellation is requested
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool IsCancelRequested
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.processQueueCancelToken.IsCancellationRequested;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Queue a binding request item
|
||||
/// </summary>
|
||||
public virtual QueueItem QueueBindingOperation(
|
||||
string key,
|
||||
Func<IBindingContext, CancellationToken, object> bindOperation,
|
||||
Func<IBindingContext, object> timeoutOperation = null,
|
||||
Func<Exception, object> errorHandler = null,
|
||||
int? bindingTimeout = null,
|
||||
int? waitForLockTimeout = null)
|
||||
{
|
||||
// don't add null operations to the binding queue
|
||||
if (bindOperation == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
QueueItem queueItem = new QueueItem()
|
||||
{
|
||||
Key = key,
|
||||
BindOperation = bindOperation,
|
||||
TimeoutOperation = timeoutOperation,
|
||||
ErrorHandler = errorHandler,
|
||||
BindingTimeout = bindingTimeout,
|
||||
WaitForLockTimeout = waitForLockTimeout
|
||||
};
|
||||
|
||||
lock (this.bindingQueueLock)
|
||||
{
|
||||
this.bindingQueue.AddLast(queueItem);
|
||||
}
|
||||
|
||||
this.itemQueuedEvent.Set();
|
||||
|
||||
return queueItem;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks if a particular binding context is connected or not
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
public bool IsBindingContextConnected(string key)
|
||||
{
|
||||
lock (this.bindingContextLock)
|
||||
{
|
||||
IBindingContext context;
|
||||
if (this.BindingContextMap.TryGetValue(key, out context))
|
||||
{
|
||||
return context.IsConnected;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or creates a binding context for the provided context key
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
protected IBindingContext GetOrCreateBindingContext(string key)
|
||||
{
|
||||
// use a default binding context for disconnected requests
|
||||
if (string.IsNullOrWhiteSpace(key))
|
||||
{
|
||||
key = "disconnected_binding_context";
|
||||
}
|
||||
|
||||
lock (this.bindingContextLock)
|
||||
{
|
||||
if (!this.BindingContextMap.ContainsKey(key))
|
||||
{
|
||||
this.BindingContextMap.Add(key, new T());
|
||||
}
|
||||
|
||||
return this.BindingContextMap[key];
|
||||
}
|
||||
}
|
||||
|
||||
protected IEnumerable<IBindingContext> GetBindingContexts(string keyPrefix)
|
||||
{
|
||||
// use a default binding context for disconnected requests
|
||||
if (string.IsNullOrWhiteSpace(keyPrefix))
|
||||
{
|
||||
keyPrefix = "disconnected_binding_context";
|
||||
}
|
||||
|
||||
lock (this.bindingContextLock)
|
||||
{
|
||||
return this.BindingContextMap.Where(x => x.Key.StartsWith(keyPrefix)).Select(v => v.Value);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks if a binding context already exists for the provided context key
|
||||
/// </summary>
|
||||
protected bool BindingContextExists(string key)
|
||||
{
|
||||
lock (this.bindingContextLock)
|
||||
{
|
||||
return this.BindingContextMap.ContainsKey(key);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove the binding queue entry
|
||||
/// </summary>
|
||||
protected void RemoveBindingContext(string key)
|
||||
{
|
||||
lock (this.bindingContextLock)
|
||||
{
|
||||
if (this.BindingContextMap.ContainsKey(key))
|
||||
{
|
||||
// disconnect existing connection
|
||||
var bindingContext = this.BindingContextMap[key];
|
||||
if (bindingContext.ServerConnection != null && bindingContext.ServerConnection.IsOpen)
|
||||
{
|
||||
bindingContext.ServerConnection.Disconnect();
|
||||
}
|
||||
|
||||
// remove key from the map
|
||||
this.BindingContextMap.Remove(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool HasPendingQueueItems
|
||||
{
|
||||
get
|
||||
{
|
||||
lock (this.bindingQueueLock)
|
||||
{
|
||||
return this.bindingQueue.Count > 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the next pending queue item
|
||||
/// </summary>
|
||||
private QueueItem GetNextQueueItem()
|
||||
{
|
||||
lock (this.bindingQueueLock)
|
||||
{
|
||||
if (this.bindingQueue.Count == 0)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
QueueItem queueItem = this.bindingQueue.First.Value;
|
||||
this.bindingQueue.RemoveFirst();
|
||||
return queueItem;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Starts the queue processing thread
|
||||
/// </summary>
|
||||
private Task StartQueueProcessorAsync()
|
||||
{
|
||||
if (this.processQueueCancelToken != null)
|
||||
{
|
||||
this.processQueueCancelToken.Dispose();
|
||||
}
|
||||
this.processQueueCancelToken = new CancellationTokenSource();
|
||||
|
||||
return Task.Factory.StartNew(
|
||||
ProcessQueue,
|
||||
this.processQueueCancelToken.Token,
|
||||
TaskCreationOptions.LongRunning,
|
||||
TaskScheduler.Default);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The core queue processing method
|
||||
/// </summary>
|
||||
/// <param name="state"></param>
|
||||
private void ProcessQueue()
|
||||
{
|
||||
CancellationToken token = this.processQueueCancelToken.Token;
|
||||
WaitHandle[] waitHandles = new WaitHandle[2]
|
||||
{
|
||||
this.itemQueuedEvent,
|
||||
token.WaitHandle
|
||||
};
|
||||
|
||||
while (true)
|
||||
{
|
||||
// wait for with an item to be queued or the a cancellation request
|
||||
WaitHandle.WaitAny(waitHandles);
|
||||
if (token.IsCancellationRequested)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
// dispatch all pending queue items
|
||||
while (this.HasPendingQueueItems)
|
||||
{
|
||||
QueueItem queueItem = GetNextQueueItem();
|
||||
if (queueItem == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
IBindingContext bindingContext = GetOrCreateBindingContext(queueItem.Key);
|
||||
if (bindingContext == null)
|
||||
{
|
||||
queueItem.ItemProcessed.Set();
|
||||
continue;
|
||||
}
|
||||
|
||||
bool lockTaken = false;
|
||||
try
|
||||
{
|
||||
// prefer the queue item binding item, otherwise use the context default timeout
|
||||
int bindTimeout = queueItem.BindingTimeout ?? bindingContext.BindingTimeout;
|
||||
|
||||
// handle the case a previous binding operation is still running
|
||||
if (!bindingContext.BindingLock.WaitOne(queueItem.WaitForLockTimeout ?? 0))
|
||||
{
|
||||
queueItem.Result = queueItem.TimeoutOperation != null
|
||||
? queueItem.TimeoutOperation(bindingContext)
|
||||
: null;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
bindingContext.BindingLock.Reset();
|
||||
|
||||
lockTaken = true;
|
||||
|
||||
// execute the binding operation
|
||||
object result = null;
|
||||
CancellationTokenSource cancelToken = new CancellationTokenSource();
|
||||
|
||||
// run the operation in a separate thread
|
||||
var bindTask = Task.Run(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
result = queueItem.BindOperation(
|
||||
bindingContext,
|
||||
cancelToken.Token);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.Instance.Write(LogLevel.Error, "Unexpected exception on the binding queue: " + ex.ToString());
|
||||
if (queueItem.ErrorHandler != null)
|
||||
{
|
||||
result = queueItem.ErrorHandler(ex);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// check if the binding tasks completed within the binding timeout
|
||||
if (bindTask.Wait(bindTimeout))
|
||||
{
|
||||
queueItem.Result = result;
|
||||
}
|
||||
else
|
||||
{
|
||||
cancelToken.Cancel();
|
||||
|
||||
// if the task didn't complete then call the timeout callback
|
||||
if (queueItem.TimeoutOperation != null)
|
||||
{
|
||||
queueItem.Result = queueItem.TimeoutOperation(bindingContext);
|
||||
}
|
||||
|
||||
lockTaken = false;
|
||||
|
||||
bindTask
|
||||
.ContinueWith((a) => bindingContext.BindingLock.Set())
|
||||
.ContinueWithOnFaulted(t => Logger.Instance.Write(LogLevel.Error, "Binding queue threw exception " + t.Exception.ToString()));
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// catch and log any exceptions raised in the binding calls
|
||||
// set item processed to avoid deadlocks
|
||||
Logger.Instance.Write(LogLevel.Error, "Binding queue threw exception " + ex.ToString());
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (lockTaken)
|
||||
{
|
||||
bindingContext.BindingLock.Set();
|
||||
}
|
||||
|
||||
queueItem.ItemProcessed.Set();
|
||||
}
|
||||
|
||||
// if a queue processing cancellation was requested then exit the loop
|
||||
if (token.IsCancellationRequested)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
lock (this.bindingQueueLock)
|
||||
{
|
||||
// verify the binding queue is still empty
|
||||
if (this.bindingQueue.Count == 0)
|
||||
{
|
||||
// reset the item queued event since we've processed all the pending items
|
||||
this.itemQueuedEvent.Reset();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clear queued items
|
||||
/// </summary>
|
||||
public void ClearQueuedItems()
|
||||
{
|
||||
lock (this.bindingQueueLock)
|
||||
{
|
||||
if (this.bindingQueue.Count > 0)
|
||||
{
|
||||
this.bindingQueue.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (this.processQueueCancelToken != null)
|
||||
{
|
||||
this.processQueueCancelToken.Dispose();
|
||||
}
|
||||
|
||||
if (itemQueuedEvent != null)
|
||||
{
|
||||
itemQueuedEvent.Dispose();
|
||||
}
|
||||
|
||||
if (this.BindingContextMap != null)
|
||||
{
|
||||
foreach (var item in this.BindingContextMap)
|
||||
{
|
||||
if (item.Value != null && item.Value.ServerConnection != null && item.Value.ServerConnection.SqlConnectionObject != null)
|
||||
{
|
||||
item.Value.ServerConnection.SqlConnectionObject.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,217 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Threading;
|
||||
using Microsoft.SqlServer.Management.Common;
|
||||
using Microsoft.SqlServer.Management.SmoMetadataProvider;
|
||||
using Microsoft.SqlServer.Management.SqlParser.Binder;
|
||||
using Microsoft.SqlServer.Management.SqlParser.Common;
|
||||
using Microsoft.SqlServer.Management.SqlParser.MetadataProvider;
|
||||
using Microsoft.SqlServer.Management.SqlParser.Parser;
|
||||
using Microsoft.SqlTools.CoreServices.Utility;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.LanguageServices
|
||||
{
|
||||
/// <summary>
|
||||
/// Class for the binding context for connected sessions
|
||||
/// </summary>
|
||||
public class ConnectedBindingContext : IBindingContext
|
||||
{
|
||||
private ParseOptions parseOptions;
|
||||
|
||||
private ManualResetEvent bindingLock;
|
||||
|
||||
private ServerConnection serverConnection;
|
||||
|
||||
/// <summary>
|
||||
/// Connected binding context constructor
|
||||
/// </summary>
|
||||
public ConnectedBindingContext()
|
||||
{
|
||||
this.bindingLock = new ManualResetEvent(initialState: true);
|
||||
this.BindingTimeout = ConnectedBindingQueue.DefaultBindingTimeout;
|
||||
this.MetadataDisplayInfoProvider = new MetadataDisplayInfoProvider();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a flag indicating if the binder is connected
|
||||
/// </summary>
|
||||
public bool IsConnected { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the binding server connection
|
||||
/// </summary>
|
||||
public ServerConnection ServerConnection
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.serverConnection;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.serverConnection = value;
|
||||
|
||||
// reset the parse options so the get recreated for the current connection
|
||||
this.parseOptions = null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the metadata display info provider
|
||||
/// </summary>
|
||||
public MetadataDisplayInfoProvider MetadataDisplayInfoProvider { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the SMO metadata provider
|
||||
/// </summary>
|
||||
public SmoMetadataProvider SmoMetadataProvider { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the binder
|
||||
/// </summary>
|
||||
public IBinder Binder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the binding lock object
|
||||
/// </summary>
|
||||
public ManualResetEvent BindingLock
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.bindingLock;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the binding operation timeout in milliseconds
|
||||
/// </summary>
|
||||
public int BindingTimeout { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the Language Service ServerVersion
|
||||
/// </summary>
|
||||
public ServerVersion ServerVersion
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.ServerConnection != null
|
||||
? this.ServerConnection.ServerVersion
|
||||
: null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the current DataEngineType
|
||||
/// </summary>
|
||||
public DatabaseEngineType DatabaseEngineType
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.ServerConnection != null
|
||||
? this.ServerConnection.DatabaseEngineType
|
||||
: DatabaseEngineType.Standalone;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the current connections TransactSqlVersion
|
||||
/// </summary>
|
||||
public TransactSqlVersion TransactSqlVersion
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.IsConnected
|
||||
? GetTransactSqlVersion(this.ServerVersion)
|
||||
: TransactSqlVersion.Current;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the current DatabaseCompatibilityLevel
|
||||
/// </summary>
|
||||
public DatabaseCompatibilityLevel DatabaseCompatibilityLevel
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.IsConnected
|
||||
? GetDatabaseCompatibilityLevel(this.ServerVersion)
|
||||
: DatabaseCompatibilityLevel.Current;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the current ParseOptions
|
||||
/// </summary>
|
||||
public ParseOptions ParseOptions
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.parseOptions == null)
|
||||
{
|
||||
this.parseOptions = new ParseOptions(
|
||||
batchSeparator: CommonConstants.DefaultBatchSeperator,
|
||||
isQuotedIdentifierSet: true,
|
||||
compatibilityLevel: DatabaseCompatibilityLevel,
|
||||
transactSqlVersion: TransactSqlVersion);
|
||||
}
|
||||
return this.parseOptions;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Gets the database compatibility level from a server version
|
||||
/// </summary>
|
||||
/// <param name="serverVersion"></param>
|
||||
private static DatabaseCompatibilityLevel GetDatabaseCompatibilityLevel(ServerVersion serverVersion)
|
||||
{
|
||||
int versionMajor = Math.Max(serverVersion.Major, 8);
|
||||
|
||||
switch (versionMajor)
|
||||
{
|
||||
case 8:
|
||||
return DatabaseCompatibilityLevel.Version80;
|
||||
case 9:
|
||||
return DatabaseCompatibilityLevel.Version90;
|
||||
case 10:
|
||||
return DatabaseCompatibilityLevel.Version100;
|
||||
case 11:
|
||||
return DatabaseCompatibilityLevel.Version110;
|
||||
case 12:
|
||||
return DatabaseCompatibilityLevel.Version120;
|
||||
case 13:
|
||||
return DatabaseCompatibilityLevel.Version130;
|
||||
default:
|
||||
return DatabaseCompatibilityLevel.Current;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the transaction sql version from a server version
|
||||
/// </summary>
|
||||
/// <param name="serverVersion"></param>
|
||||
private static TransactSqlVersion GetTransactSqlVersion(ServerVersion serverVersion)
|
||||
{
|
||||
int versionMajor = Math.Max(serverVersion.Major, 9);
|
||||
|
||||
switch (versionMajor)
|
||||
{
|
||||
case 9:
|
||||
case 10:
|
||||
// In case of 10.0 we still use Version 10.5 as it is the closest available.
|
||||
return TransactSqlVersion.Version105;
|
||||
case 11:
|
||||
return TransactSqlVersion.Version110;
|
||||
case 12:
|
||||
return TransactSqlVersion.Version120;
|
||||
case 13:
|
||||
return TransactSqlVersion.Version130;
|
||||
default:
|
||||
return TransactSqlVersion.Current;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,231 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Data.SqlClient;
|
||||
using Microsoft.SqlServer.Management.Common;
|
||||
using Microsoft.SqlServer.Management.SmoMetadataProvider;
|
||||
using Microsoft.SqlServer.Management.SqlParser.Binder;
|
||||
using Microsoft.SqlServer.Management.SqlParser.MetadataProvider;
|
||||
using Microsoft.SqlTools.CoreServices.Connection;
|
||||
using Microsoft.SqlTools.DataProtocol.Contracts.Connection;
|
||||
using System.Threading;
|
||||
using Microsoft.SqlTools.CoreServices.Workspace;
|
||||
using Microsoft.SqlTools.CoreServices.SqlContext;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.LanguageServices
|
||||
{
|
||||
public interface IConnectedBindingQueue
|
||||
{
|
||||
void CloseConnections(string serverName, string databaseName, int millisecondsTimeout);
|
||||
void OpenConnections(string serverName, string databaseName, int millisecondsTimeout);
|
||||
string AddConnectionContext(ConnectionInfo connInfo, string featureName = null, bool overwrite = false);
|
||||
void Dispose();
|
||||
QueueItem QueueBindingOperation(
|
||||
string key,
|
||||
Func<IBindingContext, CancellationToken, object> bindOperation,
|
||||
Func<IBindingContext, object> timeoutOperation = null,
|
||||
Func<Exception, object> errorHandler = null,
|
||||
int? bindingTimeout = null,
|
||||
int? waitForLockTimeout = null);
|
||||
}
|
||||
|
||||
public class SqlConnectionOpener
|
||||
{
|
||||
/// <summary>
|
||||
/// Virtual method used to support mocking and testing
|
||||
/// </summary>
|
||||
public virtual SqlConnection OpenSqlConnection(ConnectionInfo connInfo, string featureName)
|
||||
{
|
||||
return ConnectionServiceCore.OpenSqlConnection(connInfo, featureName);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ConnectedBindingQueue class for processing online binding requests
|
||||
/// </summary>
|
||||
public class ConnectedBindingQueue : BindingQueue<ConnectedBindingContext>, IConnectedBindingQueue
|
||||
{
|
||||
internal const int DefaultBindingTimeout = 500;
|
||||
|
||||
internal const int DefaultMinimumConnectionTimeout = 30;
|
||||
|
||||
/// <summary>
|
||||
/// flag determing if the connection queue requires online metadata objects
|
||||
/// it's much cheaper to not construct these objects if not needed
|
||||
/// </summary>
|
||||
private bool needsMetadata;
|
||||
private SqlConnectionOpener connectionOpener;
|
||||
/// <summary>
|
||||
/// Gets the current settings
|
||||
/// </summary>
|
||||
internal SqlToolsSettings CurrentSettings
|
||||
{
|
||||
get { return SettingsService<SqlToolsSettings>.Instance.CurrentSettings; }
|
||||
}
|
||||
|
||||
public ConnectedBindingQueue()
|
||||
: this(true)
|
||||
{
|
||||
}
|
||||
|
||||
public ConnectedBindingQueue(bool needsMetadata)
|
||||
{
|
||||
this.needsMetadata = needsMetadata;
|
||||
this.connectionOpener = new SqlConnectionOpener();
|
||||
}
|
||||
|
||||
// For testing purposes only
|
||||
internal void SetConnectionOpener(SqlConnectionOpener opener)
|
||||
{
|
||||
this.connectionOpener = opener;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generate a unique key based on the ConnectionInfo object
|
||||
/// </summary>
|
||||
/// <param name="connInfo"></param>
|
||||
private string GetConnectionContextKey(ConnectionInfo connInfo)
|
||||
{
|
||||
ConnectionDetails details = connInfo.ConnectionDetails;
|
||||
string key = string.Format("{0}_{1}_{2}_{3}",
|
||||
details.ServerName ?? "NULL",
|
||||
details.DatabaseName ?? "NULL",
|
||||
details.UserName ?? "NULL",
|
||||
details.AuthenticationType ?? "NULL"
|
||||
);
|
||||
|
||||
if (!string.IsNullOrEmpty(details.DatabaseDisplayName))
|
||||
{
|
||||
key += "_" + details.DatabaseDisplayName;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(details.GroupId))
|
||||
{
|
||||
key += "_" + details.GroupId;
|
||||
}
|
||||
|
||||
return key;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generate a unique key based on the ConnectionInfo object
|
||||
/// </summary>
|
||||
/// <param name="connInfo"></param>
|
||||
private string GetConnectionContextKey(string serverName, string databaseName)
|
||||
{
|
||||
return string.Format("{0}_{1}",
|
||||
serverName ?? "NULL",
|
||||
databaseName ?? "NULL");
|
||||
|
||||
}
|
||||
|
||||
public void CloseConnections(string serverName, string databaseName, int millisecondsTimeout)
|
||||
{
|
||||
string connectionKey = GetConnectionContextKey(serverName, databaseName);
|
||||
var contexts = GetBindingContexts(connectionKey);
|
||||
foreach (var bindingContext in contexts)
|
||||
{
|
||||
if (bindingContext.BindingLock.WaitOne(millisecondsTimeout))
|
||||
{
|
||||
bindingContext.ServerConnection.Disconnect();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void OpenConnections(string serverName, string databaseName, int millisecondsTimeout)
|
||||
{
|
||||
string connectionKey = GetConnectionContextKey(serverName, databaseName);
|
||||
var contexts = GetBindingContexts(connectionKey);
|
||||
foreach (var bindingContext in contexts)
|
||||
{
|
||||
if (bindingContext.BindingLock.WaitOne(millisecondsTimeout))
|
||||
{
|
||||
try
|
||||
{
|
||||
bindingContext.ServerConnection.Connect();
|
||||
}
|
||||
catch
|
||||
{
|
||||
//TODO: remove the binding context?
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveBindingContext(ConnectionInfo connInfo)
|
||||
{
|
||||
string connectionKey = GetConnectionContextKey(connInfo);
|
||||
if (BindingContextExists(connectionKey))
|
||||
{
|
||||
RemoveBindingContext(connectionKey);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Use a ConnectionInfo item to create a connected binding context
|
||||
/// </summary>
|
||||
/// <param name="connInfo">Connection info used to create binding context</param>
|
||||
/// <param name="overwrite">Overwrite existing context</param>
|
||||
public virtual string AddConnectionContext(ConnectionInfo connInfo, string featureName = null, bool overwrite = false)
|
||||
{
|
||||
if (connInfo == null)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
// lookup the current binding context
|
||||
string connectionKey = GetConnectionContextKey(connInfo);
|
||||
if (BindingContextExists(connectionKey))
|
||||
{
|
||||
if (overwrite)
|
||||
{
|
||||
RemoveBindingContext(connectionKey);
|
||||
}
|
||||
else
|
||||
{
|
||||
// no need to populate the context again since the context already exists
|
||||
return connectionKey;
|
||||
}
|
||||
}
|
||||
IBindingContext bindingContext = this.GetOrCreateBindingContext(connectionKey);
|
||||
|
||||
if (bindingContext.BindingLock.WaitOne())
|
||||
{
|
||||
try
|
||||
{
|
||||
bindingContext.BindingLock.Reset();
|
||||
SqlConnection sqlConn = connectionOpener.OpenSqlConnection(connInfo, featureName);
|
||||
|
||||
// populate the binding context to work with the SMO metadata provider
|
||||
bindingContext.ServerConnection = new ServerConnection(sqlConn);
|
||||
|
||||
if (this.needsMetadata)
|
||||
{
|
||||
bindingContext.SmoMetadataProvider = SmoMetadataProvider.CreateConnectedProvider(bindingContext.ServerConnection);
|
||||
bindingContext.MetadataDisplayInfoProvider = new MetadataDisplayInfoProvider();
|
||||
bindingContext.MetadataDisplayInfoProvider.BuiltInCasing =
|
||||
this.CurrentSettings.SqlTools.IntelliSense.LowerCaseSuggestions.Value
|
||||
? CasingStyle.Lowercase : CasingStyle.Uppercase;
|
||||
bindingContext.Binder = BinderProvider.CreateBinder(bindingContext.SmoMetadataProvider);
|
||||
}
|
||||
|
||||
bindingContext.BindingTimeout = ConnectedBindingQueue.DefaultBindingTimeout;
|
||||
bindingContext.IsConnected = true;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
bindingContext.IsConnected = false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
bindingContext.BindingLock.Set();
|
||||
}
|
||||
}
|
||||
|
||||
return connectionKey;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System.Threading;
|
||||
using Microsoft.SqlServer.Management.Common;
|
||||
using Microsoft.SqlServer.Management.SmoMetadataProvider;
|
||||
using Microsoft.SqlServer.Management.SqlParser.Binder;
|
||||
using Microsoft.SqlServer.Management.SqlParser.Common;
|
||||
using Microsoft.SqlServer.Management.SqlParser.MetadataProvider;
|
||||
using Microsoft.SqlServer.Management.SqlParser.Parser;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.LanguageServices
|
||||
{
|
||||
/// <summary>
|
||||
/// The context used for binding requests
|
||||
/// </summary>
|
||||
public interface IBindingContext
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets a flag indicating if the context is connected
|
||||
/// </summary>
|
||||
bool IsConnected { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the binding server connection
|
||||
/// </summary>
|
||||
ServerConnection ServerConnection { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the metadata display info provider
|
||||
/// </summary>
|
||||
MetadataDisplayInfoProvider MetadataDisplayInfoProvider { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the SMO metadata provider
|
||||
/// </summary>
|
||||
SmoMetadataProvider SmoMetadataProvider { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the binder
|
||||
/// </summary>
|
||||
IBinder Binder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the binding lock object
|
||||
/// </summary>
|
||||
ManualResetEvent BindingLock { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the binding operation timeout in milliseconds
|
||||
/// </summary>
|
||||
int BindingTimeout { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the current connection parse options
|
||||
/// </summary>
|
||||
ParseOptions ParseOptions { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the current connection server version
|
||||
/// </summary>
|
||||
ServerVersion ServerVersion { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the database engine type
|
||||
/// </summary>
|
||||
DatabaseEngineType DatabaseEngineType { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the T-SQL version
|
||||
/// </summary>
|
||||
TransactSqlVersion TransactSqlVersion { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the database compatibility level
|
||||
/// </summary>
|
||||
DatabaseCompatibilityLevel DatabaseCompatibilityLevel { get; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.LanguageServices
|
||||
{
|
||||
public static class LanguageContants {
|
||||
private const int OneSecond = 1000;
|
||||
|
||||
internal const int DiagnosticParseDelay = 750;
|
||||
|
||||
internal const int HoverTimeout = 500;
|
||||
|
||||
internal const int BindingTimeout = 500;
|
||||
|
||||
internal const int OnConnectionWaitTimeout = 300 * OneSecond;
|
||||
|
||||
internal const int PeekDefinitionTimeout = 10 * OneSecond;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Threading;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.LanguageServices
|
||||
{
|
||||
/// <summary>
|
||||
/// Class that stores the state of a binding queue request item
|
||||
/// </summary>
|
||||
public class QueueItem
|
||||
{
|
||||
/// <summary>
|
||||
/// QueueItem constructor
|
||||
/// </summary>
|
||||
public QueueItem()
|
||||
{
|
||||
this.ItemProcessed = new ManualResetEvent(initialState: false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the queue item key
|
||||
/// </summary>
|
||||
public string Key { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the bind operation callback method
|
||||
/// </summary>
|
||||
public Func<IBindingContext, CancellationToken, object> BindOperation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the timeout operation to call if the bind operation doesn't finish within timeout period
|
||||
/// </summary>
|
||||
public Func<IBindingContext, object> TimeoutOperation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the operation to call if the bind operation encounters an unexpected exception.
|
||||
/// Supports returning an object in case of the exception occurring since in some cases we need to be
|
||||
/// tolerant of error cases and still return some value
|
||||
/// </summary>
|
||||
public Func<Exception, object> ErrorHandler { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets an event to signal when this queue item has been processed
|
||||
/// </summary>
|
||||
public virtual ManualResetEvent ItemProcessed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the result of the queued task
|
||||
/// </summary>
|
||||
public object Result { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the binding operation timeout in milliseconds
|
||||
/// </summary>
|
||||
public int? BindingTimeout { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the timeout for how long to wait for the binding lock
|
||||
/// </summary>
|
||||
public int? WaitForLockTimeout { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Converts the result of the execution to type T
|
||||
/// </summary>
|
||||
public T GetResultAsT<T>() where T : class
|
||||
{
|
||||
//var task = this.ResultsTask;
|
||||
return (this.Result != null)
|
||||
? this.Result as T
|
||||
: null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.SqlTools.Hosting.Contracts;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.LanguageServices.Contracts
|
||||
{
|
||||
public class TelemetryProperties
|
||||
{
|
||||
public string EventName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Telemetry properties
|
||||
/// </summary>
|
||||
public Dictionary<string, string> Properties { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Telemetry measures
|
||||
/// </summary>
|
||||
public Dictionary<string, double> Measures { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parameters sent back with an IntelliSense ready event
|
||||
/// </summary>
|
||||
public class TelemetryParams
|
||||
{
|
||||
public TelemetryProperties Params { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Event sent when the language service needs to add a telemetry event
|
||||
/// </summary>
|
||||
public class TelemetryNotification
|
||||
{
|
||||
public static readonly
|
||||
EventType<TelemetryParams> Type =
|
||||
EventType<TelemetryParams>.Create("telemetry/sqlevent");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// List of telemetry events
|
||||
/// </summary>
|
||||
public static class TelemetryEventNames
|
||||
{
|
||||
/// <summary>
|
||||
/// telemetry event name for auto complete response time
|
||||
/// </summary>
|
||||
public const string IntellisenseQuantile = "IntellisenseQuantile";
|
||||
|
||||
/// <summary>
|
||||
/// telemetry event name for when definition is requested
|
||||
/// </summary>
|
||||
public const string PeekDefinitionRequested = "PeekDefinitionRequested";
|
||||
|
||||
/// <summary>
|
||||
/// telemetry event name for when definition is requested
|
||||
/// </summary>
|
||||
public const string FormatCode = "FormatCode";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// List of properties used in telemetry events
|
||||
/// </summary>
|
||||
public static class TelemetryPropertyNames
|
||||
{
|
||||
/// <summary>
|
||||
/// Is a connection to an Azure database or not
|
||||
/// </summary>
|
||||
public const string IsAzure = "IsAzure";
|
||||
|
||||
/// <summary>
|
||||
/// Did an event succeed or not
|
||||
/// </summary>
|
||||
public const string Succeeded = "Succeeded";
|
||||
|
||||
/// <summary>
|
||||
/// Was the action against a connected file or similar resource, or not
|
||||
/// </summary>
|
||||
public const string Connected = "Connected";
|
||||
|
||||
/// <summary>
|
||||
/// Format type property - should be one of <see cref="DocumentFormatType"/> or <see cref="RangeFormatType"/>
|
||||
/// </summary>
|
||||
public const string FormatType = "FormatType";
|
||||
|
||||
/// <summary>
|
||||
/// A full document format
|
||||
/// </summary>
|
||||
public const string DocumentFormatType = "Document";
|
||||
|
||||
/// <summary>
|
||||
/// A document range format
|
||||
/// </summary>
|
||||
public const string RangeFormatType = "Range";
|
||||
}
|
||||
}
|
||||
5172
src/Microsoft.SqlTools.CoreServices/Localization/sr.cs
Executable file
5172
src/Microsoft.SqlTools.CoreServices/Localization/sr.cs
Executable file
File diff suppressed because it is too large
Load Diff
490
src/Microsoft.SqlTools.CoreServices/Localization/sr.de.resx
Normal file
490
src/Microsoft.SqlTools.CoreServices/Localization/sr.de.resx
Normal file
@@ -0,0 +1,490 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype"><value>text/microsoft-resx</value></resheader><resheader name="version"><value>1.3</value></resheader><resheader name="reader"><value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><resheader name="writer"><value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><data name="ConnectionServiceConnectErrorNullParams"><value>Verbindungsparameter dürfen nicht null sein.</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNullOwnerUri"><value>OwnerUri darf nicht null oder leer sein.</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNotConnected"><value>SpecifiedUri '{0}' hat keine gültige Verbindung</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidAuthType"><value>Ungültiger Wert '{0}' für AuthenticationType. Gültige Werte sind 'Integrated' und 'SqlLogin'.</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidIntent"><value>Ungültiger Wert '{0}' für ApplicationIntent. Gültige Werte sind 'ReadWrite' und 'ReadOnly'.</value></data>
|
||||
<data name="ConnectionServiceConnectionCanceled"><value>Verbindung wurde abgebrochen.</value></data>
|
||||
<data name="ConnectionParamsValidateNullOwnerUri"><value>OwnerUri darf nicht null oder leer sein.</value></data>
|
||||
<data name="ConnectionParamsValidateNullConnection"><value>Verbindungsdetails-Objekt darf nicht null sein.</value></data>
|
||||
<data name="ConnectionParamsValidateNullServerName"><value>ServerName darf nicht null oder leer sein.</value></data>
|
||||
<data name="ConnectionParamsValidateNullSqlAuth"><value>{0} darf bei Verwendung der SqlLogin-Authentifizierung nicht null oder leer sein</value></data>
|
||||
<data name="QueryServiceCancelAlreadyCompleted"><value>Die Abfrage wurde bereits abgeschlossen und kann nicht abgebrochen werden</value></data>
|
||||
<data name="QueryServiceCancelDisposeFailed"><value>Abfrage wurde erfolgreich abgebrochen, Fehler beim Abfrage verfügen. Benutzer-URI nicht gefunden.</value></data>
|
||||
<data name="QueryServiceQueryCancelled"><value>Die Abfrage wurde vom Benutzer abgebrochen.</value></data>
|
||||
<data name="QueryServiceSubsetBatchNotCompleted"><value>Die Stapelverarbeitung ist noch nicht abgeschlossen</value></data>
|
||||
<data name="QueryServiceSubsetBatchOutOfRange"><value>Batch-Index darf nicht kleiner als 0 oder größer als die Anzahl der Batches sein.</value></data>
|
||||
<data name="QueryServiceSubsetResultSetOutOfRange"><value>Der Index der Ergebnismenge darf nicht kleiner als 0 oder größer als die Anzahl der Ergebnismengen sein</value></data>
|
||||
<data name="QueryServiceDataReaderByteCountInvalid"><value>Die maximale Anzahl an Bytes die zurückgeben wird, muss größer als 0 sein.</value></data>
|
||||
<data name="QueryServiceDataReaderCharCountInvalid"><value>Die maximale Anzahl an Zeichen die zurückgeben werden, muss größer als 0 sein.</value></data>
|
||||
<data name="QueryServiceDataReaderXmlCountInvalid"><value>Die maximale Anzahl an XML Bytes die zurückgeben wird, muss größer als 0 sein.</value></data>
|
||||
<data name="QueryServiceFileWrapperWriteOnly"><value>Die Zugriffsmethode kann nicht write-only sein.</value></data>
|
||||
<data name="QueryServiceFileWrapperNotInitialized"><value>FileStreamWrapper muss initialisiert werden, bevor Operationen ausführt werden können</value></data>
|
||||
<data name="QueryServiceFileWrapperReadOnly"><value>Diese FileStreamWrapper kann nicht zum Schreiben verwendet werden</value></data>
|
||||
<data name="QueryServiceAffectedOneRow"><value>(1 Zeile betroffen)</value></data>
|
||||
<data name="QueryServiceAffectedRows"><value>({0} Zeilen betroffen)</value></data>
|
||||
<data name="QueryServiceCompletedSuccessfully"><value>Die Befehle wurden erfolgreich ausgeführt.</value></data>
|
||||
<data name="QueryServiceErrorFormat"><value>Zeile MSG {0} auf {1} Status {2}, {3} {4} {5}</value></data>
|
||||
<data name="QueryServiceQueryFailed"><value>Fehler bei Abfrage: {0}</value></data>
|
||||
<data name="QueryServiceColumnNull"><value>(Kein Spaltenname)</value></data>
|
||||
<data name="QueryServiceRequestsNoQuery"><value>Die angeforderte Abfrage ist nicht vorhanden.</value></data>
|
||||
<data name="QueryServiceQueryInvalidOwnerUri"><value>Dieser Editor ist nicht mit einer Datenbank verbunden.</value></data>
|
||||
<data name="QueryServiceQueryInProgress"><value>Eine Abfrage wird für diese Sitzung bereits ausgeführt. Brechen Sie diese Abfrage ab, oder warten Sie auf Beendigung.</value></data>
|
||||
<data name="QueryServiceMessageSenderNotSql"><value>Das sender Objekt für OnInfoMessage muss vom Typ SqlConnection sein</value></data>
|
||||
<data name="QueryServiceSaveAsResultSetNotComplete"><value>Das Ergebnis kann nicht gespeichert werden, solange die Abfrageausführung nicht abgeschlossen ist.</value></data>
|
||||
<data name="QueryServiceSaveAsMiscStartingError"><value>Beim Speichern ist ein interner Fehler aufgetreten</value></data>
|
||||
<data name="QueryServiceSaveAsInProgress"><value>Eine Speicheranforderung mit demselben Pfad wird bereits ausgeführt.</value></data>
|
||||
<data name="QueryServiceSaveAsFail"><value>Fehler beim Speichern von {0}: {1}</value></data>
|
||||
<data name="QueryServiceResultSetNotRead"><value>Der Teil kann nicht gelesen werden solange die Ergebnisse nicht vom Server gelesen wurden</value></data>
|
||||
<data name="QueryServiceResultSetStartRowOutOfRange"><value>Index der Startzeile kann nicht kleiner als 0 oder größer als die Anzahl der Zeilen der Ergebnismenge sein</value></data>
|
||||
<data name="QueryServiceResultSetRowCountOutOfRange"><value>Zeilenanzahl muss eine positive ganze Zahl sein.</value></data>
|
||||
<data name="QueryServiceResultSetNoColumnSchema"><value>Es konnten keine Schemainformationen der Spalte abgerufen werden</value></data>
|
||||
<data name="QueryServiceExecutionPlanNotFound"><value>Es konnten kein Ausführungsplan für die Ergebnismenge abgerufen werden</value></data>
|
||||
<data name="PeekDefinitionAzureError"><value>Diese Funktionalität wird derzeit nicht in Azure SQL DB ud Data Warehouse unterstützt: {0}</value></data>
|
||||
<data name="PeekDefinitionError"><value>Ein unerwarteter Fehler trat beim Einsehen der Definitionen auf: {0}</value></data>
|
||||
<data name="PeekDefinitionNoResultsError"><value>Es wurden keine Ergebnisse gefunden.</value></data>
|
||||
<data name="PeekDefinitionDatabaseError"><value>Es wurde kein Datenbankobjekt abgerufen</value></data>
|
||||
<data name="PeekDefinitionNotConnectedError"><value>Verbinden Sie Sich mit einem Server.</value></data>
|
||||
<data name="PeekDefinitionTimedoutError"><value>Zeitüberschreitung bei der Ausführung</value></data>
|
||||
<data name="PeekDefinitionTypeNotSupportedError"><value>Dieser Objekttyp wird aktuell von dieser Funktionalität nicht unterstützt</value></data>
|
||||
<data name="WorkspaceServicePositionLineOutOfRange"><value>Die Position befindet sich außerhalb der Zeile</value></data>
|
||||
<data name="WorkspaceServicePositionColumnOutOfRange"><value>Die Position befindet sich außerhalb der Spalte in Zeile {0}</value></data>
|
||||
<data name="WorkspaceServiceBufferPositionOutOfOrder"><value>Startposition ({0}, {1}) muss vor oder gleich der Endposition ({2}, {3}) sein</value></data>
|
||||
<data name="EE_BatchSqlMessageNoProcedureInfo"><value>Meldung {0}, Ebene {1}, Status {2}, Zeile {3}</value></data>
|
||||
<data name="EE_BatchSqlMessageWithProcedureInfo"><value>Meldung {0}, Ebene {1}, Status {2}, Prozedur {3}, Zeile {4}</value></data>
|
||||
<data name="EE_BatchSqlMessageNoLineInfo"><value>Meldung {0}, Ebene {1}, Status {2}</value></data>
|
||||
<data name="EE_BatchError_Exception"><value>Fehler beim Ausführen des Batches. Fehlermeldung: {0}</value></data>
|
||||
<data name="EE_BatchExecutionInfo_RowsAffected"><value>({0} Zeile(n) betroffen)</value></data>
|
||||
<data name="EE_ExecutionNotYetCompleteError"><value>Die vorherige Ausführung ist noch nicht abgeschlossen.</value></data>
|
||||
<data name="EE_ScriptError_Error"><value>Ein Skriptfehler ist aufgetreten.</value></data>
|
||||
<data name="EE_ScriptError_ParsingSyntax"><value>Ein Syntaxfehler ist aufgetreten der bei Analyse von {0}</value></data>
|
||||
<data name="EE_ScriptError_FatalError"><value>Ein schwerwiegender Fehler ist aufgetreten.</value></data>
|
||||
<data name="EE_ExecutionInfo_FinalizingLoop"><value>{0}-mal ausgeführt...</value></data>
|
||||
<data name="EE_ExecutionInfo_QueryCancelledbyUser"><value>Sie haben die Abfrage abgebrochen.</value></data>
|
||||
<data name="EE_BatchExecutionError_Halting"><value>Fehler während der Batchausführung.</value></data>
|
||||
<data name="EE_BatchExecutionError_Ignoring"><value>Fehler während der Batchausführung, aber des Fehlers wurde ignoriert.</value></data>
|
||||
<data name="EE_ExecutionInfo_InitializingLoop"><value>Beginning execution loop</value></data>
|
||||
<data name="EE_ExecutionError_CommandNotSupported"><value>Befehl {0} wird nicht unterstützt.</value></data>
|
||||
<data name="EE_ExecutionError_VariableNotFound"><value>Die Variable {0} konnte nicht gefunden werden.</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineError"><value>Fehler bei der SQL-Ausführung: {0}</value></data>
|
||||
<data name="BatchParserWrapperExecutionError"><value>Batch-Ausführung des Batchanalysewrappers: {0} in Zeile {1} gefunden...: {2} Beschreibung: {3}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchMessage"><value>Batch Parser Wrapper Execution Engine Meldung empfangen: Meldung: {0} Ausführliche Meldung: {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetProcessing"><value>Stapelverarbeitung Parser Wrapper Execution Engine Stapel ResultSet: DataReader.FieldCount: {0} DataReader.RecordsAffected: {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetFinished"><value>Batch-Parser Wrapper Execution Engine wurde beendet ResultSet.</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchCancelling"><value>Ausführung des Batchanalysewrappers Batch abgebrochen.</value></data>
|
||||
<data name="EE_ScriptError_Warning"><value>Scripting-Warnung.</value></data>
|
||||
<data name="TroubleshootingAssistanceMessage"><value>Weitere Informationen zu diesem Fehler finden Sie in den entsprechenden Abschnitten der Produktdokumentation.</value></data>
|
||||
<data name="BatchParser_CircularReference"><value>Die Datei '{0}' ist rekursiv eingeschlossen.</value></data>
|
||||
<data name="BatchParser_CommentNotTerminated"><value>Fehlender End Kommentarzeichen "* /".</value></data>
|
||||
<data name="BatchParser_StringNotTerminated"><value>Fehlendes schließendes Anführungszeichen nach der Zeichenfolge</value></data>
|
||||
<data name="BatchParser_IncorrectSyntax"><value>Syntaxfehler aufgetreten beim Analysieren von '{0}'.</value></data>
|
||||
<data name="BatchParser_VariableNotDefined"><value>Variable {0} ist nicht definiert.</value></data>
|
||||
<data name="TestLocalizationConstant"><value>Test</value></data>
|
||||
<data name="ErrorEmptyStringReplacement"><value>Ersatz einer leeren Zeichenfolge durch eine leere Zeichenfolge.</value></data>
|
||||
<data name="EditDataSessionNotFound"><value>Die Sitzung "{0}" ist nicht vorhanden.</value></data>
|
||||
<data name="EditDataQueryNotCompleted"><value>Die Abfrage wurde nicht abgeschlossen</value></data>
|
||||
<data name="EditDataQueryImproperResultSets"><value>Die Abfrage erzeugte mehr als eine Ergebnismenge</value></data>
|
||||
<data name="EditDataFailedAddRow"><value>Fehler beim Hinzufügen einer neuen Zeile zum Aktualisierungscache</value></data>
|
||||
<data name="EditDataRowOutOfRange"><value>Die angegebene Zeilen-ID ist außerhalb des Bereiches des Bearbeitungscaches</value></data>
|
||||
<data name="EditDataUpdatePending"><value>Für diese Zeile steht eine Aktualisierung an, die erst zurückgenommen werden muß</value></data>
|
||||
<data name="EditDataUpdateNotPending"><value>Die angegebene Zeilen-ID hat keine ausstehenden Aktualisierungen</value></data>
|
||||
<data name="EditDataObjectMetadataNotFound"><value>Tabellen oder Sicht Metadaten konnten nicht gefunden werden</value></data>
|
||||
<data name="EditDataInvalidFormatBinary"><value>Ungültiges Format für eine binäre Spalte</value></data>
|
||||
<data name="EditDataInvalidFormatBoolean"><value>Spalten vom Typ Boolean müssen entweder der Zahl 0 oder 1 oder der Zeichenkette true oder false entsprechen</value></data>
|
||||
<data name="EditDataCreateScriptMissingValue"><value>Ein Pflichtfeld hat keinen Wert.</value></data>
|
||||
<data name="EditDataDeleteSetCell"><value>Für diese Zeile steht ein Löschbefehl aus, die Aktualisierung von Feldern kann nicht durchgeführt werden.</value></data>
|
||||
<data name="EditDataColumnIdOutOfRange"><value>Die ID der Spalte muss innerhalb des Bereichs der Spalten der Abfrage sein</value></data>
|
||||
<data name="EditDataColumnCannotBeEdited"><value>Die Spalte kann nicht editiert werden</value></data>
|
||||
<data name="EditDataColumnNoKeyColumns"><value>Keine Schlüsselspalten gefunden</value></data>
|
||||
<data name="EditDataScriptFilePathNull"><value>Der Name der Ausgabedatei muss angegeben werden</value></data>
|
||||
<data name="EditDataUnsupportedObjectType"><value>Das Datenbankobjekt {0} kan nicht editiert werden</value></data>
|
||||
<data name="ConnectionServiceDbErrorDefaultNotConnected"><value>Spezifizierte URI '{0}' hat keine Standardverbindung</value></data>
|
||||
<data name="EditDataCommitInProgress"><value>Eine Commit-Anweisung wird ausgeführt. Bitte warten Sie bis zur Fertigstellung</value></data>
|
||||
<data name="SqlScriptFormatterDecimalMissingPrecision"><value>Für die Decimal-Spalte fehlt die Angabe der Genauigkeit und Dezimalstellenanzahl</value></data>
|
||||
<data name="EditDataComputedColumnPlaceholder"><value><TBD></value></data>
|
||||
<data name="QueryServiceResultSetAddNoRows"><value>Kann Zeile nicht an Ergebnisbuffer anhängen, da keine Zeilen im Datareader enthalten sind.</value></data>
|
||||
<data name="EditDataTimeOver24Hrs"><value>Der Wert für eine Spalte vom Typ TIME muss zwischen 00:00:00.0000000 und 23:59:59.9999999 liegen</value></data>
|
||||
<data name="EditDataNullNotAllowed"><value>NULL ist für diese Spalte nicht erlaubt</value></data>
|
||||
<data name="EditDataSessionAlreadyExists"><value>Es gibt bereits eine Session</value></data>
|
||||
<data name="EditDataSessionNotInitialized"><value>Eine Session wurde nocht nicht initialisiert</value></data>
|
||||
<data name="EditDataSessionAlreadyInitialized"><value>Eine Session wurde bereits initialisiert</value></data>
|
||||
<data name="EditDataSessionAlreadyInitializing"><value>Eine Session wurde bereits initialisiert oder befindet sich im Prozess der Initialisierung.</value></data>
|
||||
<data name="EditDataQueryFailed"><value>Fehler beim Ausführen der Abfrage. Weitere Informationen finden SIe in der Ausgabe</value></data>
|
||||
<data name="EditDataFilteringNegativeLimit"><value>Die Ergebnismengengrenze darf nicht negativ sein</value></data>
|
||||
<data name="QueryServiceCellNull"><value>NULL</value></data>
|
||||
<data name="EditDataMetadataObjectNameRequired"><value>Der Name des Objekts muss angegeben werden</value></data>
|
||||
<data name="EditDataMetadataTooManyIdentifiers"><value>Einen bestimmten Server oder Datenbank auszuwählen wird nicht unterstützt.</value></data>
|
||||
<data name="EditDataMetadataNotExtended"><value>Die Metadaten der Tabelle enthält keine erweiterten EIgenschaften.</value></data>
|
||||
<data name="EditDataObjectNotFound"><value>Tabelle oder Sicht zur Bearbeitung konnte nicht gefunden werden</value></data>
|
||||
<data name="TreeNodeError"><value>Fehler beim Erweitern von: {0}</value></data>
|
||||
<data name="ServerNodeConnectionError"><value>Fehler bei der Verbindung zu {0}</value></data>
|
||||
<data name="SchemaHierarchy_Aggregates"><value>Aggregate</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoles"><value>Serverrollen</value></data>
|
||||
<data name="SchemaHierarchy_ApplicationRoles"><value>Anwendungsrollen</value></data>
|
||||
<data name="SchemaHierarchy_Assemblies"><value>Assemblys</value></data>
|
||||
<data name="SchemaHierarchy_AssemblyFiles"><value>Assemblydateien</value></data>
|
||||
<data name="SchemaHierarchy_AsymmetricKeys"><value>Asymmetrische Schlüssel</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAsymmetricKeys"><value>Asymmetrische Schlüssel</value></data>
|
||||
<data name="SchemaHierarchy_DataCompressionOptions"><value>Datenkomprimierungsoptionen</value></data>
|
||||
<data name="SchemaHierarchy_Certificates"><value>Zertifikate</value></data>
|
||||
<data name="SchemaHierarchy_FileTables"><value>FileTables</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseCertificates"><value>Zertifikate</value></data>
|
||||
<data name="SchemaHierarchy_CheckConstraints"><value>Einschränkungen überprüfen</value></data>
|
||||
<data name="SchemaHierarchy_Columns"><value>Spalten</value></data>
|
||||
<data name="SchemaHierarchy_Constraints"><value>Einschränkungen</value></data>
|
||||
<data name="SchemaHierarchy_Contracts"><value>Verträge</value></data>
|
||||
<data name="SchemaHierarchy_Credentials"><value>Anmeldeinformationen</value></data>
|
||||
<data name="SchemaHierarchy_ErrorMessages"><value>Fehlermeldungen</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoleMembership"><value>Serverrollenmitgliedschaft</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseOptions"><value>Datenbankoptionen</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseRoles"><value>Datenbankrollen</value></data>
|
||||
<data name="SchemaHierarchy_RoleMemberships"><value>Rollenmitgliedschaften</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseTriggers"><value>Datenbanktrigger</value></data>
|
||||
<data name="SchemaHierarchy_DefaultConstraints"><value>DEFAULT-Einschränkungen</value></data>
|
||||
<data name="SchemaHierarchy_Defaults"><value>Standardwerte</value></data>
|
||||
<data name="SchemaHierarchy_Sequences"><value>Sequenzen</value></data>
|
||||
<data name="SchemaHierarchy_Endpoints"><value>Endpunkte</value></data>
|
||||
<data name="SchemaHierarchy_EventNotifications"><value>Ereignisbenachrichtigungen</value></data>
|
||||
<data name="SchemaHierarchy_ServerEventNotifications"><value>Serverbenachrichtigungsereignisse</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedProperties"><value>Erweiterte Eigenschaften</value></data>
|
||||
<data name="SchemaHierarchy_FileGroups"><value>Dateigruppen</value></data>
|
||||
<data name="SchemaHierarchy_ForeignKeys"><value>Fremdschlüssel</value></data>
|
||||
<data name="SchemaHierarchy_FullTextCatalogs"><value>Volltextkataloge</value></data>
|
||||
<data name="SchemaHierarchy_FullTextIndexes"><value>Volltextindizes</value></data>
|
||||
<data name="SchemaHierarchy_Functions"><value>Funktionen</value></data>
|
||||
<data name="SchemaHierarchy_Indexes"><value>Indizes</value></data>
|
||||
<data name="SchemaHierarchy_InlineFunctions"><value>Inlinefunktionen</value></data>
|
||||
<data name="SchemaHierarchy_Keys"><value>Schlüssel</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServers"><value>Verbindungsserver</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServerLogins"><value>Anmeldungen für Verbindungsserver</value></data>
|
||||
<data name="SchemaHierarchy_Logins"><value>Anmeldungen</value></data>
|
||||
<data name="SchemaHierarchy_MasterKey"><value>Hauptschlüssel</value></data>
|
||||
<data name="SchemaHierarchy_MasterKeys"><value>Hauptschlüssel</value></data>
|
||||
<data name="SchemaHierarchy_MessageTypes"><value>Meldungstypen</value></data>
|
||||
<data name="SchemaHierarchy_MultiSelectFunctions"><value>Tabellenwertfunktionen</value></data>
|
||||
<data name="SchemaHierarchy_Parameters"><value>Parameter</value></data>
|
||||
<data name="SchemaHierarchy_PartitionFunctions"><value>Partitionsfunktionen</value></data>
|
||||
<data name="SchemaHierarchy_PartitionSchemes"><value>Partitionsschemas</value></data>
|
||||
<data name="SchemaHierarchy_Permissions"><value>Berechtigungen</value></data>
|
||||
<data name="SchemaHierarchy_PrimaryKeys"><value>Primärschlüssel</value></data>
|
||||
<data name="SchemaHierarchy_Programmability"><value>Programmierbarkeit</value></data>
|
||||
<data name="SchemaHierarchy_Queues"><value>Warteschlangen</value></data>
|
||||
<data name="SchemaHierarchy_RemoteServiceBindings"><value>Remotedienstbindungen</value></data>
|
||||
<data name="SchemaHierarchy_ReturnedColumns"><value>Zurückgegebene Spalten</value></data>
|
||||
<data name="SchemaHierarchy_Roles"><value>Rollen</value></data>
|
||||
<data name="SchemaHierarchy_Routes"><value>Routen</value></data>
|
||||
<data name="SchemaHierarchy_Rules"><value>Regeln</value></data>
|
||||
<data name="SchemaHierarchy_Schemas"><value>Schemas</value></data>
|
||||
<data name="SchemaHierarchy_Security"><value>Sicherheit</value></data>
|
||||
<data name="SchemaHierarchy_ServerObjects"><value>Serverobjekte</value></data>
|
||||
<data name="SchemaHierarchy_Management"><value>Verwaltung</value></data>
|
||||
<data name="SchemaHierarchy_ServerTriggers"><value>Trigger</value></data>
|
||||
<data name="SchemaHierarchy_ServiceBroker"><value>Service Broker</value></data>
|
||||
<data name="SchemaHierarchy_Services"><value>Dienste</value></data>
|
||||
<data name="SchemaHierarchy_Signatures"><value>Signaturen</value></data>
|
||||
<data name="SchemaHierarchy_LogFiles"><value>Protokolldateien</value></data>
|
||||
<data name="SchemaHierarchy_Statistics"><value>Statistik</value></data>
|
||||
<data name="SchemaHierarchy_Storage"><value>Speicher</value></data>
|
||||
<data name="SchemaHierarchy_StoredProcedures"><value>Gespeicherte Prozeduren</value></data>
|
||||
<data name="SchemaHierarchy_SymmetricKeys"><value>Symmetrische Schlüssel</value></data>
|
||||
<data name="SchemaHierarchy_Synonyms"><value>Synonyme</value></data>
|
||||
<data name="SchemaHierarchy_Tables"><value>Tabellen</value></data>
|
||||
<data name="SchemaHierarchy_Triggers"><value>Trigger</value></data>
|
||||
<data name="SchemaHierarchy_Types"><value>Typen</value></data>
|
||||
<data name="SchemaHierarchy_UniqueKeys"><value>Eindeutige Schlüssel</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedDataTypes"><value>Benutzerdefinierte Datentypen</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTypes"><value>Benutzerdefinierte Typen (CLR)</value></data>
|
||||
<data name="SchemaHierarchy_Users"><value>Benutzer</value></data>
|
||||
<data name="SchemaHierarchy_Views"><value>Sichten</value></data>
|
||||
<data name="SchemaHierarchy_XmlIndexes"><value>XML-Indizes</value></data>
|
||||
<data name="SchemaHierarchy_XMLSchemaCollections"><value>XML-Schemaauflistungen</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTableTypes"><value>Benutzerdefinierte Tabellentypen</value></data>
|
||||
<data name="SchemaHierarchy_FilegroupFiles"><value>Dateien</value></data>
|
||||
<data name="MissingCaption"><value>Fehlende Beschriftung</value></data>
|
||||
<data name="SchemaHierarchy_BrokerPriorities"><value>Brokerprioritäten</value></data>
|
||||
<data name="SchemaHierarchy_CryptographicProviders"><value>Kryptografieanbieter</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAuditSpecifications"><value>Datenbank-Überwachungsspezifikationen</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseEncryptionKeys"><value>Verschlüsselungsschlüssel für Datenbank</value></data>
|
||||
<data name="SchemaHierarchy_EventSessions"><value>Ereignissitzungen</value></data>
|
||||
<data name="SchemaHierarchy_FullTextStopLists"><value>Volltext-Stopplisten</value></data>
|
||||
<data name="SchemaHierarchy_ResourcePools"><value>Ressourcenpools</value></data>
|
||||
<data name="SchemaHierarchy_ServerAudits"><value>Überwachungen</value></data>
|
||||
<data name="SchemaHierarchy_ServerAuditSpecifications"><value>Serverüberwachungsspezifikationen</value></data>
|
||||
<data name="SchemaHierarchy_SpatialIndexes"><value>Räumliche Indizes</value></data>
|
||||
<data name="SchemaHierarchy_WorkloadGroups"><value>Arbeitsauslastungsgruppen</value></data>
|
||||
<data name="SchemaHierarchy_SqlFiles"><value>SQL-Dateien</value></data>
|
||||
<data name="SchemaHierarchy_ServerFunctions"><value>Serverfunktionen</value></data>
|
||||
<data name="SchemaHierarchy_SqlType"><value>SQL-Typ</value></data>
|
||||
<data name="SchemaHierarchy_ServerOptions"><value>Serveroptionen</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseDiagrams"><value>Datenbankdiagramme</value></data>
|
||||
<data name="SchemaHierarchy_SystemTables"><value>Systemtabellen</value></data>
|
||||
<data name="SchemaHierarchy_Databases"><value>Datenbanken</value></data>
|
||||
<data name="SchemaHierarchy_SystemContracts"><value>Systemverträge</value></data>
|
||||
<data name="SchemaHierarchy_SystemDatabases"><value>Systemdatenbanken</value></data>
|
||||
<data name="SchemaHierarchy_SystemMessageTypes"><value>Systemmeldungstypen</value></data>
|
||||
<data name="SchemaHierarchy_SystemQueues"><value>Systemwarteschlangen</value></data>
|
||||
<data name="SchemaHierarchy_SystemServices"><value>Systemdienste</value></data>
|
||||
<data name="SchemaHierarchy_SystemStoredProcedures"><value>Gespeicherte Systemprozeduren</value></data>
|
||||
<data name="SchemaHierarchy_SystemViews"><value>Systemsichten</value></data>
|
||||
<data name="SchemaHierarchy_DataTierApplications"><value>Datenebenenanwendungen</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedStoredProcedures"><value>Erweiterte gespeicherte Prozeduren</value></data>
|
||||
<data name="SchemaHierarchy_SystemAggregateFunctions"><value>Aggregatfunktionen</value></data>
|
||||
<data name="SchemaHierarchy_SystemApproximateNumerics"><value>Ungefähre numerische Ausdrücke</value></data>
|
||||
<data name="SchemaHierarchy_SystemBinaryStrings"><value>Binärzeichenfolgen</value></data>
|
||||
<data name="SchemaHierarchy_SystemCharacterStrings"><value>Zeichenfolgen</value></data>
|
||||
<data name="SchemaHierarchy_SystemCLRDataTypes"><value>CLR-Datentypen</value></data>
|
||||
<data name="SchemaHierarchy_SystemConfigurationFunctions"><value>Konfigurationsfunktionen</value></data>
|
||||
<data name="SchemaHierarchy_SystemCursorFunctions"><value>Cursorfunktionen</value></data>
|
||||
<data name="SchemaHierarchy_SystemDataTypes"><value>Systemdatentypen</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTime"><value>Datum und Uhrzeit</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTimeFunctions"><value>Datums- und Uhrzeitfunktionen</value></data>
|
||||
<data name="SchemaHierarchy_SystemExactNumerics"><value>Genaue numerische Ausdrücke</value></data>
|
||||
<data name="SchemaHierarchy_SystemFunctions"><value>Systemfunktionen</value></data>
|
||||
<data name="SchemaHierarchy_SystemHierarchyIdFunctions"><value>Hierarchie-ID-Funktionen</value></data>
|
||||
<data name="SchemaHierarchy_SystemMathematicalFunctions"><value>Mathematische Funktionen</value></data>
|
||||
<data name="SchemaHierarchy_SystemMetadataFunctions"><value>Metadatenfunktionen</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherDataTypes"><value>Andere Datentypen</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherFunctions"><value>Andere Funktionen</value></data>
|
||||
<data name="SchemaHierarchy_SystemRowsetFunctions"><value>Rowsetfunktionen</value></data>
|
||||
<data name="SchemaHierarchy_SystemSecurityFunctions"><value>Sicherheitsfunktionen</value></data>
|
||||
<data name="SchemaHierarchy_SystemSpatialDataTypes"><value>Räumliche Datentypen</value></data>
|
||||
<data name="SchemaHierarchy_SystemStringFunctions"><value>Zeichenfolgenfunktionen</value></data>
|
||||
<data name="SchemaHierarchy_SystemSystemStatisticalFunctions"><value>Statistische Systemfunktionen</value></data>
|
||||
<data name="SchemaHierarchy_SystemTextAndImageFunctions"><value>Text- und Bildfunktionen</value></data>
|
||||
<data name="SchemaHierarchy_SystemUnicodeCharacterStrings"><value>Unicode-Zeichenfolgen</value></data>
|
||||
<data name="SchemaHierarchy_AggregateFunctions"><value>Aggregatfunktionen</value></data>
|
||||
<data name="SchemaHierarchy_ScalarValuedFunctions"><value>Skalarwertfunktionen</value></data>
|
||||
<data name="SchemaHierarchy_TableValuedFunctions"><value>Tabellenwertfunktionen</value></data>
|
||||
<data name="SchemaHierarchy_SystemExtendedStoredProcedures"><value>Erweiterte gespeicherte Systemprozeduren</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInType"><value>Integrierte Typen</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInServerRole"><value>Integrierte Serverrollen</value></data>
|
||||
<data name="SchemaHierarchy_UserWithPassword"><value>Benutzer mit Kennwort</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyList"><value>Sucheigenschaftenliste</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPolicies"><value>Sicherheitsrichtlinien</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPredicates"><value>Sicherheitsprädikate</value></data>
|
||||
<data name="SchemaHierarchy_ServerRole"><value>Serverrolle</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyLists"><value>Sucheigenschaftenlisten</value></data>
|
||||
<data name="SchemaHierarchy_ColumnStoreIndexes"><value>Spaltenspeicherindizes</value></data>
|
||||
<data name="SchemaHierarchy_TableTypeIndexes"><value>Tabellentypindex</value></data>
|
||||
<data name="SchemaHierarchy_SelectiveXmlIndexes"><value>Selektive XML-Indexe</value></data>
|
||||
<data name="SchemaHierarchy_XmlNamespaces"><value>XML-Namespaces</value></data>
|
||||
<data name="SchemaHierarchy_XmlTypedPromotedPaths"><value>XML-typisierte höher gestufte Pfade</value></data>
|
||||
<data name="SchemaHierarchy_SqlTypedPromotedPaths"><value>T-SQL-typisierte höher gestufte Pfade</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseScopedCredentials"><value>Datenbankweit gültige Anmeldeinformationen</value></data>
|
||||
<data name="SchemaHierarchy_ExternalDataSources"><value>Externe Datenquellen</value></data>
|
||||
<data name="SchemaHierarchy_ExternalFileFormats"><value>Externe Dateiformate</value></data>
|
||||
<data name="SchemaHierarchy_ExternalResources"><value>Externe Ressourcen</value></data>
|
||||
<data name="SchemaHierarchy_ExternalTables"><value>Externe Tabellen</value></data>
|
||||
<data name="SchemaHierarchy_AlwaysEncryptedKeys"><value>Immer verschlüsselte Schlüssel</value></data>
|
||||
<data name="SchemaHierarchy_ColumnMasterKeys"><value>Spaltenhauptschlüssel</value></data>
|
||||
<data name="SchemaHierarchy_ColumnEncryptionKeys"><value>Spaltenverschlüsselungsschlüssel</value></data>
|
||||
<data name="SchemaHierarchy_Server"><value>Server</value></data>
|
||||
<data name="ScriptingParams_ConnectionString_Property_Invalid"><value>Fehler beim Analysieren der Eigenschaft ScriptingParams.ConnectionString.</value></data>
|
||||
<data name="ScriptingParams_FilePath_Property_Invalid"><value>Ungültiges Verzeichnis angeben in der Eigenschaft ScriptingParams.FilePath.</value></data>
|
||||
<data name="ScriptingListObjectsCompleteParams_ConnectionString_Property_Invalid"><value>Fehler beim Analysieren der Eigenschaft ScriptingListObjectsCompleteParams.ConnectionString</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterLabelFormatString"><value>{0} ({1}, {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterNoDefaultLabel"><value>Kein Standard</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputLabel"><value>Eingabe</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputLabel"><value>Eingabe/Ausgabe</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputReadOnlyLabel"><value>Eingabe/schreibgeschützt</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputReadOnlyLabel"><value>Eingabe/Ausgabe/schreibgeschützt</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterDefaultLabel"><value>Standard</value></data>
|
||||
<data name="SchemaHierarchy_NullColumn_Label"><value>NULL</value></data>
|
||||
<data name="SchemaHierarchy_NotNullColumn_Label"><value>nicht NULL</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithType"><value>{0} ({1}, {2})</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithoutType"><value>{0} ({1})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithType"><value>{0} ({1}berechnet, {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithoutType"><value>{0} ({1}berechnet)</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithoutType"><value>{0} (Spaltensatz, {1})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithType"><value>{0} (Spaltensatz, {1} {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithTypeAndKeyString"><value>{0} (Spaltensatz, {1}, {2}, {3})</value></data>
|
||||
<data name="UniqueIndex_LabelPart"><value>Eindeutig</value></data>
|
||||
<data name="NonUniqueIndex_LabelPart"><value>Nicht eindeutig</value></data>
|
||||
<data name="ClusteredIndex_LabelPart"><value>Gruppiert</value></data>
|
||||
<data name="NonClusteredIndex_LabelPart"><value>Nicht gruppiert</value></data>
|
||||
<data name="History_LabelPart"><value>Verlauf</value></data>
|
||||
<data name="SystemVersioned_LabelPart"><value>System-Mit Versionsangabe</value></data>
|
||||
<data name="unavailable"><value>Nicht verfügbar</value></data>
|
||||
<data name="filegroup_dialog_defaultFilegroup"><value>Aktuelle Standarddateigruppe: {0}</value></data>
|
||||
<data name="filegroup_dialog_title"><value>Neue Dateigruppe für "{0}"</value></data>
|
||||
<data name="filegroups_default"><value>Standard</value></data>
|
||||
<data name="filegroups_files"><value>Dateien</value></data>
|
||||
<data name="filegroups_name"><value>Name</value></data>
|
||||
<data name="filegroups_readonly"><value>Schreibgeschützt</value></data>
|
||||
<data name="general_autogrowth"><value>Automatische Vergrößerung/Maximale Größe</value></data>
|
||||
<data name="general_builderText"><value>...</value></data>
|
||||
<data name="general_default"><value><Standard></value></data>
|
||||
<data name="general_fileGroup"><value>Dateigruppe</value></data>
|
||||
<data name="general_fileName"><value>Logischer Name</value></data>
|
||||
<data name="general_fileType"><value>Dateityp</value></data>
|
||||
<data name="general_initialSize"><value>Anfangsgröße (MB)</value></data>
|
||||
<data name="general_newFilegroup"><value><neue Dateigruppe></value></data>
|
||||
<data name="general_path"><value>Pfad</value></data>
|
||||
<data name="general_physicalFileName"><value>Dateiname</value></data>
|
||||
<data name="general_rawDevice"><value><unformatiertes Medium></value></data>
|
||||
<data name="general_recoveryModel_bulkLogged"><value>Massenprotokolliert</value></data>
|
||||
<data name="general_recoveryModel_full"><value>Vollständig</value></data>
|
||||
<data name="general_recoveryModel_simple"><value>Einfach</value></data>
|
||||
<data name="general_titleSearchOwner"><value>Datenbankbesitzer auswählen</value></data>
|
||||
<data name="prototype_autogrowth_disabled"><value>Kein(e)</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByMB"><value>Um {0} MB, auf {1} MB beschränkt</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByPercent"><value>Um {0} Prozent, auf {1} MB beschränkt </value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByMB"><value>Um {0} MB, unbegrenzt</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByPercent"><value>Um {0} Prozent, unbegrenzt</value></data>
|
||||
<data name="prototype_autogrowth_unlimitedfilestream"><value>Unbegrenzt</value></data>
|
||||
<data name="prototype_autogrowth_limitedfilestream"><value>Auf {0} MB beschränkt</value></data>
|
||||
<data name="prototype_db_category_automatic"><value>Automatisch</value></data>
|
||||
<data name="prototype_db_category_servicebroker"><value>Service Broker</value></data>
|
||||
<data name="prototype_db_category_collation"><value>Sortierung</value></data>
|
||||
<data name="prototype_db_category_cursor"><value>Cursor</value></data>
|
||||
<data name="prototype_db_category_misc"><value>Verschiedenes</value></data>
|
||||
<data name="prototype_db_category_recovery"><value>Wiederherstellung</value></data>
|
||||
<data name="prototype_db_category_state"><value>Status</value></data>
|
||||
<data name="prototype_db_prop_ansiNullDefault"><value>ANSI NULL Default</value></data>
|
||||
<data name="prototype_db_prop_ansiNulls"><value>ANSI NULLS aktiviert</value></data>
|
||||
<data name="prototype_db_prop_ansiPadding"><value>ANSI-Auffüllung aktiviert </value></data>
|
||||
<data name="prototype_db_prop_ansiWarnings"><value>ANSI Warnings aktiviert</value></data>
|
||||
<data name="prototype_db_prop_arithabort"><value>Abbruch bei arithmetischem Fehler aktiviert </value></data>
|
||||
<data name="prototype_db_prop_autoClose"><value>Automatisch schließen</value></data>
|
||||
<data name="prototype_db_prop_autoCreateStatistics"><value>Statistik automatisch erstellen</value></data>
|
||||
<data name="prototype_db_prop_autoShrink"><value>Automatisch verkleinern</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatistics"><value>Statistiken automatisch aktualisieren </value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatisticsAsync"><value>Statistik automatisch asynchron aktualisieren</value></data>
|
||||
<data name="prototype_db_prop_caseSensitive"><value>Unterscheidung nach Groß-/Kleinschreibung</value></data>
|
||||
<data name="prototype_db_prop_closeCursorOnCommit"><value>Schließen des Cursors nach Commit aktiviert </value></data>
|
||||
<data name="prototype_db_prop_collation"><value>Sortierung</value></data>
|
||||
<data name="prototype_db_prop_concatNullYieldsNull"><value>Verketten von NULL-Werten ergibt NULL </value></data>
|
||||
<data name="prototype_db_prop_databaseCompatibilityLevel"><value>Datenbank-Kompatibilitätsgrad </value></data>
|
||||
<data name="prototype_db_prop_databaseState"><value>Datenbankstatus </value></data>
|
||||
<data name="prototype_db_prop_defaultCursor"><value>Standardcursor</value></data>
|
||||
<data name="prototype_db_prop_fullTextIndexing"><value>Volltextindizierung aktiviert </value></data>
|
||||
<data name="prototype_db_prop_numericRoundAbort"><value>Abbruch bei numerischem Runden </value></data>
|
||||
<data name="prototype_db_prop_pageVerify"><value>Seitenüberprüfung </value></data>
|
||||
<data name="prototype_db_prop_quotedIdentifier"><value>Bezeichner in Anführungszeichen aktiviert </value></data>
|
||||
<data name="prototype_db_prop_readOnly"><value>Datenbank schreibgeschützt</value></data>
|
||||
<data name="prototype_db_prop_recursiveTriggers"><value>Rekursive Trigger aktiviert </value></data>
|
||||
<data name="prototype_db_prop_restrictAccess"><value>Zugriff beschränken</value></data>
|
||||
<data name="prototype_db_prop_selectIntoBulkCopy"><value>Select Into/Bulk Copy</value></data>
|
||||
<data name="prototype_db_prop_honorBrokerPriority"><value>Brokerpriorität berücksichtigen</value></data>
|
||||
<data name="prototype_db_prop_serviceBrokerGuid"><value>Service Broker-Bezeichner</value></data>
|
||||
<data name="prototype_db_prop_brokerEnabled"><value>Broker aktiviert</value></data>
|
||||
<data name="prototype_db_prop_truncateLogOnCheckpoint"><value>Protokoll bei Prüfpunkt abschneiden </value></data>
|
||||
<data name="prototype_db_prop_dbChaining"><value>Datenbankübergreifende Besitzverkettung aktiviert</value></data>
|
||||
<data name="prototype_db_prop_trustworthy"><value>Vertrauenswürdig</value></data>
|
||||
<data name="prototype_db_prop_dateCorrelationOptimization"><value>Optimierung der Datumskorrelation aktiviert:
|
||||
prototype_db_prop_parameterization = Parameterization</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_forced"><value>Erzwungen</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_simple"><value>Einfach</value></data>
|
||||
<data name="prototype_file_dataFile"><value>ROWS (Daten)</value></data>
|
||||
<data name="prototype_file_logFile"><value>LOG</value></data>
|
||||
<data name="prototype_file_filestreamFile"><value>FILESTREAM-Daten</value></data>
|
||||
<data name="prototype_file_noFileGroup"><value>Nicht zutreffend</value></data>
|
||||
<data name="prototype_file_defaultpathstring"><value><Standardpfad></value></data>
|
||||
<data name="title_openConnectionsMustBeClosed"><value>Geöffnete Verbindungen</value></data>
|
||||
<data name="warning_openConnectionsMustBeClosed"><value>Zum Ändern der Datenbankeigenschaften muss SQL Server alle anderen Verbindungen mit der Datenbank schließen. Möchten Sie wirklich die Eigenschaften ändern und alle anderen Verbindungen schließen?</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_autoClosed"><value>AUTO_CLOSED</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_emergency"><value>EMERGENCY</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_inaccessible"><value>INACCESSIBLE</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_normal"><value>NORMAL</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_offline"><value>OFFLINE</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recovering"><value>RECOVERING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recoveryPending"><value>RECOVERY PENDING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_restoring"><value>RESTORING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_shutdown"><value>SHUTDOWN</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_standby"><value>STANDBY</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_suspect"><value>SUSPECT</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_global"><value>GLOBAL</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_local"><value>LOCAL</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_multiple"><value>MULTI_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_restricted"><value>RESTRICTED_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_single"><value>SINGLE_USER</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_checksum"><value>CHECKSUM</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_none"><value>NONE</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_tornPageDetection"><value>TORN_PAGE_DETECTION</value></data>
|
||||
<data name="prototype_db_prop_varDecimalEnabled"><value>VarDecimal-Speicherformat aktiviert</value></data>
|
||||
<data name="compatibilityLevel_katmai"><value>SQL Server 2008 (100)</value></data>
|
||||
<data name="prototype_db_prop_encryptionEnabled"><value>Verschlüsselung aktiviert</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_off"><value>AUS</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_on"><value>EIN</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_primary"><value>PRIMÄR</value></data>
|
||||
<data name="error_db_prop_invalidleadingColumns"><value>Die Anzahl führender Hashspalten ist bei der HASH-Verteilungsrichtlinie optional, sollte aber zwischen 1 und 16 Spalten liegen.</value></data>
|
||||
<data name="compatibilityLevel_denali"><value>SQL Server 2012 (110)</value></data>
|
||||
<data name="compatibilityLevel_sql14"><value>SQL Server 2014 (120)</value></data>
|
||||
<data name="compatibilityLevel_sql15"><value>SQL Server 2016 (130)</value></data>
|
||||
<data name="compatibilityLevel_sqlvNext"><value>SQL Server vNext (140)</value></data>
|
||||
<data name="general_containmentType_None"><value>Kein(e)</value></data>
|
||||
<data name="general_containmentType_Partial"><value>Teilweise</value></data>
|
||||
<data name="filegroups_filestreamFiles"><value>FILESTREAM-Dateien</value></data>
|
||||
<data name="prototype_file_noApplicableFileGroup"><value>Keine anwendbare Dateigruppe</value></data>
|
||||
<data name="DatabaseNotAccessible"><value>Auf die Datenbank "{0}" kann nicht zugegriffen werden.</value></data>
|
||||
<data name="QueryServiceResultSetHasNoResults"><value>Abfrage hat keine Ergebnis zum Zurückgeben</value></data>
|
||||
<data name="QueryServiceResultSetTooLarge"><value>Ergebnismenge ist zu groß, um sicher geladen zu werden</value></data>
|
||||
<data name="prototype_db_prop_parameterization"><value>Parametrisierung</value></data>
|
||||
<data name="ConflictWithNoRecovery"><value>Diese Option darf nicht angegeben werden, wenn eine Sicherung mit der NORECOVERY-Option wiederhergestellt wird.</value></data>
|
||||
<data name="InvalidPathForDatabaseFile"><value>Ungültiger Pfad für Datenbankdatei: {0}</value></data>
|
||||
<data name="Log"><value>Protokoll</value></data>
|
||||
<data name="RestorePlanFailed"><value>Fehler beim Erstellen des Wiederherstellungsplan</value></data>
|
||||
<data name="RestoreNotSupported"><value>Wiederherstellen der Datenbank wird nicht unterstützt.</value></data>
|
||||
<data name="RestoreTaskName"><value>Datenbank wiederherstellen</value></data>
|
||||
<data name="RestoreCopyOnly"><value>(nur kopieren)</value></data>
|
||||
<data name="RestoreBackupSetComponent"><value>Komponente</value></data>
|
||||
<data name="RestoreBackupSetType"><value>Typ</value></data>
|
||||
<data name="RestoreBackupSetServer"><value>Server</value></data>
|
||||
<data name="RestoreBackupSetDatabase"><value>Datenbank</value></data>
|
||||
<data name="RestoreBackupSetPosition"><value>Position</value></data>
|
||||
<data name="RestoreBackupSetFirstLsn"><value>Erste LSN</value></data>
|
||||
<data name="RestoreBackupSetLastLsn"><value>Letzte LSN</value></data>
|
||||
<data name="RestoreBackupSetCheckpointLsn"><value>Prüfpunkt-LSN</value></data>
|
||||
<data name="RestoreBackupSetFullLsn"><value>Vollständige LSN</value></data>
|
||||
<data name="RestoreBackupSetStartDate"><value>Startdatum</value></data>
|
||||
<data name="RestoreBackupSetFinishDate"><value>Beendigungsdatum</value></data>
|
||||
<data name="RestoreBackupSetSize"><value>Größe</value></data>
|
||||
<data name="RestoreBackupSetUserName"><value>Benutzername</value></data>
|
||||
<data name="RestoreBackupSetExpiration"><value>Ablaufdatum</value></data>
|
||||
<data name="RestoreBackupSetName"><value>Name</value></data>
|
||||
<data name="TheLastBackupTaken"><value>Letzte Sicherung ({0})</value></data>
|
||||
<data name="BackupTaskName"><value>Datenbank sichern</value></data>
|
||||
<data name="TaskInProgress"><value>In Bearbeitung</value></data>
|
||||
<data name="TaskCompleted"><value>Abgeschlossen</value></data>
|
||||
<data name="ScriptTaskName"><value>Skripterstellung</value></data>
|
||||
<data name="ProfilerConnectionNotFound"><value>Verbindung nicht gefunden</value></data>
|
||||
<data name="BackupPathIsFolderError"><value>Der angegebene Dateiname ist zugleich ein Verzeichnisname: {0}</value></data>
|
||||
<data name="InvalidBackupPathError"><value>Es kann nicht überprüft werden, ob der Speicherort der Sicherungsdatei vorhanden ist: {0}</value></data>
|
||||
<data name="InvalidPathError"><value>Auf den angegebenen Pfad auf dem Server kann nicht zugegriffen werden: {0}</value></data>
|
||||
<data name="NoBackupsetsToRestore"><value>Kein Sicherungssatz zur Wiederherstellung ausgewählt</value></data>
|
||||
<data name="NeverBackedUp"><value>Nie</value></data>
|
||||
<data name="AzureSqlDbEdition"><value>Azure SQL DB</value></data>
|
||||
<data name="AzureSqlDwEdition"><value>Azure SQL Data Warehouse</value></data>
|
||||
<data name="AzureSqlStretchEdition"><value>Azure SQL Stretch Database</value></data>
|
||||
<data name="Error_InvalidDirectoryName"><value>Der Pfad {0} ist kein gültiges Verzeichnis</value></data>
|
||||
<data name="Error_ExistingDirectoryName"><value>Die Datei {1} im Verzeichnis {0} existiert bereits.</value></data>
|
||||
<data name="EditDataValueTooLarge"><value>Der Wert {0} ist zu groß für eine Spalte mit dem Datentyp {1}</value></data>
|
||||
</root>
|
||||
489
src/Microsoft.SqlTools.CoreServices/Localization/sr.es.resx
Normal file
489
src/Microsoft.SqlTools.CoreServices/Localization/sr.es.resx
Normal file
@@ -0,0 +1,489 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype"><value>text/microsoft-resx</value></resheader><resheader name="version"><value>1.3</value></resheader><resheader name="reader"><value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><resheader name="writer"><value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><data name="ConnectionServiceConnectErrorNullParams"><value>Los parámetros de conexión no pueden ser nulos</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNullOwnerUri"><value>OwnerUri no puede ser nulo ni estar vacío</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNotConnected"><value>SpecifiedUri '{0}' no tiene una conexión existente</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidAuthType"><value>El valor '{0}' no es válido para AuthenticationType. Los valores válidos son 'Integrated' y 'SqlLogin'.</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidIntent"><value>El valor '{0}' no es válido para ApplicationIntent. Los valores válidos son 'ReadWrite' y 'ReadOnly'.</value></data>
|
||||
<data name="ConnectionServiceConnectionCanceled"><value>Conexión cancelada</value></data>
|
||||
<data name="ConnectionParamsValidateNullOwnerUri"><value>OwnerUri no puede ser nulo ni estar vacío</value></data>
|
||||
<data name="ConnectionParamsValidateNullConnection"><value>El objeto de detalles de conexión no puede ser nulo</value></data>
|
||||
<data name="ConnectionParamsValidateNullServerName"><value>ServerName no puede ser nulo ni estar vacío</value></data>
|
||||
<data name="ConnectionParamsValidateNullSqlAuth"><value>{0} no puede ser nulo ni estar vacío cuando se utiliza autenticación SqlLogin</value></data>
|
||||
<data name="QueryServiceCancelAlreadyCompleted"><value>Ya se ha completado la consulta, no se puede cancelar</value></data>
|
||||
<data name="QueryServiceCancelDisposeFailed"><value>La consulta fue cancelada con éxito, pero no se ha podido desechar. No se encontró el URI del propietario.</value></data>
|
||||
<data name="QueryServiceQueryCancelled"><value>Consulta cancelada por el usuario</value></data>
|
||||
<data name="QueryServiceSubsetBatchNotCompleted"><value>El lote aún no ha finalizado,</value></data>
|
||||
<data name="QueryServiceSubsetBatchOutOfRange"><value>Índice de lote no puede ser menor que 0 o mayor que el número de lotes</value></data>
|
||||
<data name="QueryServiceSubsetResultSetOutOfRange"><value>Índice del conjunto de resultados no puede ser menor que 0 o mayor que el número de conjuntos de resultados</value></data>
|
||||
<data name="QueryServiceDataReaderByteCountInvalid"><value>El número máximo de bytes a devolver debe ser mayor que cero</value></data>
|
||||
<data name="QueryServiceDataReaderCharCountInvalid"><value>El número máximo de caracteres a devolver debe ser mayor que cero</value></data>
|
||||
<data name="QueryServiceDataReaderXmlCountInvalid"><value>El número máximo de bytes XML a devolver debe ser mayor que cero</value></data>
|
||||
<data name="QueryServiceFileWrapperWriteOnly"><value>El método de acceso no puede ser de sólo escritura</value></data>
|
||||
<data name="QueryServiceFileWrapperNotInitialized"><value>FileStreamWrapper debe inicializarse antes de realizar operaciones</value></data>
|
||||
<data name="QueryServiceFileWrapperReadOnly"><value>Este FileStreamWrapper no se puede utilizar para escritura.</value></data>
|
||||
<data name="QueryServiceAffectedOneRow"><value>(1 fila afectada)</value></data>
|
||||
<data name="QueryServiceAffectedRows"><value>({0} filas afectadas)</value></data>
|
||||
<data name="QueryServiceCompletedSuccessfully"><value>Comandos finalizados correctamente.</value></data>
|
||||
<data name="QueryServiceErrorFormat"><value>Msg {0}, nivel {1} estado {2}, línea {3} {4} {5}</value></data>
|
||||
<data name="QueryServiceQueryFailed"><value>Error en la consulta: {0}</value></data>
|
||||
<data name="QueryServiceColumnNull"><value>(Ningún nombre de columna)</value></data>
|
||||
<data name="QueryServiceRequestsNoQuery"><value>La consulta solicitada no existe</value></data>
|
||||
<data name="QueryServiceQueryInvalidOwnerUri"><value>Este editor no está conectado a una base de datos</value></data>
|
||||
<data name="QueryServiceQueryInProgress"><value>Una consulta ya está en curso para esta sesión de editor. Por favor, cancelar esta consulta o esperar su finalización.</value></data>
|
||||
<data name="QueryServiceMessageSenderNotSql"><value>Remitente de eventos de OnInfoMessage debe ser un objeto SqlConnection</value></data>
|
||||
<data name="QueryServiceSaveAsResultSetNotComplete"><value>No se puede guardar el resultado hasta que haya finalizado la ejecución de la consulta</value></data>
|
||||
<data name="QueryServiceSaveAsMiscStartingError"><value>Error interno al iniciar el guardado de la tarea</value></data>
|
||||
<data name="QueryServiceSaveAsInProgress"><value>Una operacion de guardado en la misma ruta se encuentra en curso</value></data>
|
||||
<data name="QueryServiceSaveAsFail"><value>Error al guardar {0}: {1}</value></data>
|
||||
<data name="QueryServiceResultSetNotRead"><value>No se puede leer el subconjunto, a menos que los resultados se han leído desde el servidor</value></data>
|
||||
<data name="QueryServiceResultSetStartRowOutOfRange"><value>Fila de inicio no puede ser menor que 0 o mayor que el número de filas en el conjunto de resultados</value></data>
|
||||
<data name="QueryServiceResultSetRowCountOutOfRange"><value>La cantidad de filas debe ser un entero positivo</value></data>
|
||||
<data name="QueryServiceResultSetNoColumnSchema"><value>No se pudo recuperar el esquema de columna para el conjunto de resultados</value></data>
|
||||
<data name="QueryServiceExecutionPlanNotFound"><value>No se pudo recuperar un plan de ejecución del conjunto de resultados</value></data>
|
||||
<data name="PeekDefinitionAzureError"><value>Esta característica actualmente no se admite en la base de datos de SQL Azure y almacén de datos: {0}</value></data>
|
||||
<data name="PeekDefinitionError"><value>Se ha producido un error inesperado durante la ejecución de la definición de Peek: {0}</value></data>
|
||||
<data name="PeekDefinitionNoResultsError"><value>No se encontraron resultados.</value></data>
|
||||
<data name="PeekDefinitionDatabaseError"><value>No se pudo obtener ningún objeto asociado a la base de datos.</value></data>
|
||||
<data name="PeekDefinitionNotConnectedError"><value>Por favor, conéctese a un servidor</value></data>
|
||||
<data name="PeekDefinitionTimedoutError"><value>Tiempo de espera agotado para esta operación.</value></data>
|
||||
<data name="PeekDefinitionTypeNotSupportedError"><value>Esta característica no admite actualmente este tipo de objeto.</value></data>
|
||||
<data name="WorkspaceServicePositionLineOutOfRange"><value>Posición está fuera del intervalo de la línea de archivo</value></data>
|
||||
<data name="WorkspaceServicePositionColumnOutOfRange"><value>Posición está fuera del intervalo de la columna de la línea {0}</value></data>
|
||||
<data name="WorkspaceServiceBufferPositionOutOfOrder"><value>Posición de inicio ({0}, {1}) debe preceder o ser igual a la posición final ({2}, {3})</value></data>
|
||||
<data name="EE_BatchSqlMessageNoProcedureInfo"><value>Msg {0}, {1}, nivel de estado {2}, línea {3}</value></data>
|
||||
<data name="EE_BatchSqlMessageWithProcedureInfo"><value>Msj {0}, {1}, nivel de estado {2}, procedimiento {3}, línea {4}</value></data>
|
||||
<data name="EE_BatchSqlMessageNoLineInfo"><value>Msg {0}, nivel {1}, {2} de estado</value></data>
|
||||
<data name="EE_BatchError_Exception"><value>Se produjo un error al procesar el lote. Mensaje de error: {0}</value></data>
|
||||
<data name="EE_BatchExecutionInfo_RowsAffected"><value>({0} filas afectadas)</value></data>
|
||||
<data name="EE_ExecutionNotYetCompleteError"><value>La ejecución anterior aún no está completa.</value></data>
|
||||
<data name="EE_ScriptError_Error"><value>Se ha producido un error de secuencias de comandos.</value></data>
|
||||
<data name="EE_ScriptError_ParsingSyntax"><value>Se encontró sintaxis incorrecta mientras se estaba analizando {0}.</value></data>
|
||||
<data name="EE_ScriptError_FatalError"><value>Se ha producido un error grave.</value></data>
|
||||
<data name="EE_ExecutionInfo_FinalizingLoop"><value>La ejecución se completó {0} veces...</value></data>
|
||||
<data name="EE_ExecutionInfo_QueryCancelledbyUser"><value>Se canceló la consulta.</value></data>
|
||||
<data name="EE_BatchExecutionError_Halting"><value>Se produjo un error mientras se ejecutaba el lote.</value></data>
|
||||
<data name="EE_BatchExecutionError_Ignoring"><value>Se produjo un error mientras se ejecutaba el lote, pero se ha omitido el error.</value></data>
|
||||
<data name="EE_ExecutionInfo_InitializingLoop"><value>Beginning execution loop</value></data>
|
||||
<data name="EE_ExecutionError_CommandNotSupported"><value>No se admite el comando {0}.</value></data>
|
||||
<data name="EE_ExecutionError_VariableNotFound"><value>La variable {0} no se encontró.</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineError"><value>Error de ejecución de SQL: {0}</value></data>
|
||||
<data name="BatchParserWrapperExecutionError"><value>Ejecución de contenedor del analizador por lotes: {0} se encuentra... en la línea {1}: {2} Descripción: {3}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchMessage"><value>Lote analizador contenedor ejecución motor lote mensaje recibido: mensaje: {0} mensaje detallado: {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetProcessing"><value>Motor de ejecución de analizador contenedor lote ResultSet procesamiento por lotes: DataReader.FieldCount: {0} DataReader.RecordsAffected: {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetFinished"><value>Finalizó el elemento ResultSet analizador contenedor ejecución motor los lotes.</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchCancelling"><value>Cancelando la ejecución por lotes del contenedor del analizador por lotes.</value></data>
|
||||
<data name="EE_ScriptError_Warning"><value>Advertencia de scripting.</value></data>
|
||||
<data name="TroubleshootingAssistanceMessage"><value>Para obtener más información acerca de este error, vea los temas de solución de problemas en la documentación del producto.</value></data>
|
||||
<data name="BatchParser_CircularReference"><value>El archivo '{0}' se incluyó recursivamente.</value></data>
|
||||
<data name="BatchParser_CommentNotTerminated"><value>Falta la marca de final de comentario ' * /'.</value></data>
|
||||
<data name="BatchParser_StringNotTerminated"><value>Sin comilla de cierre después de la cadena de caracteres.</value></data>
|
||||
<data name="BatchParser_IncorrectSyntax"><value>Se encontró sintaxis incorrecta al analizar '{0}'.</value></data>
|
||||
<data name="BatchParser_VariableNotDefined"><value>La variable {0} no está definida.</value></data>
|
||||
<data name="TestLocalizationConstant"><value>prueba</value></data>
|
||||
<data name="ErrorEmptyStringReplacement"><value>Sustitución de una cadena vacía por una cadena vacía.</value></data>
|
||||
<data name="EditDataSessionNotFound"><value>Sesión de edición no existe,</value></data>
|
||||
<data name="EditDataQueryNotCompleted"><value>La consulta no ha finalizado.</value></data>
|
||||
<data name="EditDataQueryImproperResultSets"><value>La consulta no generó un único set de resultados</value></data>
|
||||
<data name="EditDataFailedAddRow"><value>Falló al agregar una nueva fila a la caché de actualización</value></data>
|
||||
<data name="EditDataRowOutOfRange"><value>El ID de la fila ingresado, se encuentra fuera del rango de filas de la caché de edición</value></data>
|
||||
<data name="EditDataUpdatePending"><value>Una actualización está pendiente para esta fila y debe de revertirse primero</value></data>
|
||||
<data name="EditDataUpdateNotPending"><value>El ID de la fila ingresado no tiene actualizaciones pendientes</value></data>
|
||||
<data name="EditDataObjectMetadataNotFound"><value>La metadata de la tabla o vista no pudo ser encontrada</value></data>
|
||||
<data name="EditDataInvalidFormatBinary"><value>Formato inválido para columna binaria</value></data>
|
||||
<data name="EditDataInvalidFormatBoolean"><value>Columnas del tipo boolean deben de ser numéricos 1 o 0, o tipo string true o false</value></data>
|
||||
<data name="EditDataCreateScriptMissingValue"><value>Falta un valor requerido de la celda</value></data>
|
||||
<data name="EditDataDeleteSetCell"><value>Existe una eliminación pendiente para esta fila, una actualización de celda no puede ser realizada.</value></data>
|
||||
<data name="EditDataColumnIdOutOfRange"><value>El ID de la columna debe de estar en el rango de columnas de la consulta.</value></data>
|
||||
<data name="EditDataColumnCannotBeEdited"><value>La columna no puede ser editada</value></data>
|
||||
<data name="EditDataColumnNoKeyColumns"><value>No se encontró ninguna columna clave</value></data>
|
||||
<data name="EditDataScriptFilePathNull"><value>Proporcione un nombre de archivo de salida</value></data>
|
||||
<data name="EditDataUnsupportedObjectType"><value>Objeto de base de datos {0} no puede ser usado para modificación.</value></data>
|
||||
<data name="ConnectionServiceDbErrorDefaultNotConnected"><value>SpecifiedUri '{0}' no tiene alguna conexión por defecto</value></data>
|
||||
<data name="EditDataCommitInProgress"><value>Una tarea de confirmación se encuentra en progreso. Por favor espere que la operación termine.</value></data>
|
||||
<data name="SqlScriptFormatterDecimalMissingPrecision"><value>Columna del tipo decimal no tiene precisión o escala numérica</value></data>
|
||||
<data name="EditDataComputedColumnPlaceholder"><value><TBD></value></data>
|
||||
<data name="QueryServiceResultSetAddNoRows"><value>No se pueden agregar filas al buffer de resultados, el lector de datos no contiene filas</value></data>
|
||||
<data name="EditDataTimeOver24Hrs"><value>Los valores en la columna TIME deben estar incluidos en el rango desde 00:00:00:000000 hasta 23:59:59.999999</value></data>
|
||||
<data name="EditDataNullNotAllowed"><value>No se permite un valor NULL en esta columna</value></data>
|
||||
<data name="EditDataSessionAlreadyExists"><value>La sesión de edición ya existe.</value></data>
|
||||
<data name="EditDataSessionNotInitialized"><value>La sesión de edición no se inicializó</value></data>
|
||||
<data name="EditDataSessionAlreadyInitialized"><value>La sesión de edición ya se inicializó</value></data>
|
||||
<data name="EditDataSessionAlreadyInitializing"><value>La sesión de edición ya se inicializo o se encuentra en proceso de inicialización</value></data>
|
||||
<data name="EditDataQueryFailed"><value>La ejecución de la consulta falló, ver los mensajes para obtener mas detalle</value></data>
|
||||
<data name="EditDataFilteringNegativeLimit"><value>El límite del resultado no puede ser negativo</value></data>
|
||||
<data name="QueryServiceCellNull"><value>NULL</value></data>
|
||||
<data name="EditDataMetadataObjectNameRequired"><value>Se debe proveer un nombre de objeto</value></data>
|
||||
<data name="EditDataMetadataTooManyIdentifiers"><value>No se permite especificar explícitamente el servidor o la base de datos</value></data>
|
||||
<data name="EditDataMetadataNotExtended"><value>Los metadatos de la tabla no tienen propiedades extendidas</value></data>
|
||||
<data name="EditDataObjectNotFound"><value>La tabla o vista solicitada para edición no se encuentra</value></data>
|
||||
<data name="TreeNodeError"><value>Error en expansión: {0}</value></data>
|
||||
<data name="ServerNodeConnectionError"><value>Error conectando a {0}</value></data>
|
||||
<data name="SchemaHierarchy_Aggregates"><value>Agregados</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoles"><value>Roles de servidor</value></data>
|
||||
<data name="SchemaHierarchy_ApplicationRoles"><value>Roles de aplicación</value></data>
|
||||
<data name="SchemaHierarchy_Assemblies"><value>Ensamblados</value></data>
|
||||
<data name="SchemaHierarchy_AssemblyFiles"><value>Archivos de ensamblado</value></data>
|
||||
<data name="SchemaHierarchy_AsymmetricKeys"><value>Claves asimétricas</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAsymmetricKeys"><value>Claves asimétricas</value></data>
|
||||
<data name="SchemaHierarchy_DataCompressionOptions"><value>Opciones de compresión de datos</value></data>
|
||||
<data name="SchemaHierarchy_Certificates"><value>Certificados</value></data>
|
||||
<data name="SchemaHierarchy_FileTables"><value>Tablas de archivos</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseCertificates"><value>Certificados</value></data>
|
||||
<data name="SchemaHierarchy_CheckConstraints"><value>Restricciones CHECK</value></data>
|
||||
<data name="SchemaHierarchy_Columns"><value>Columnas</value></data>
|
||||
<data name="SchemaHierarchy_Constraints"><value>Restricciones</value></data>
|
||||
<data name="SchemaHierarchy_Contracts"><value>Contratos</value></data>
|
||||
<data name="SchemaHierarchy_Credentials"><value>Credenciales</value></data>
|
||||
<data name="SchemaHierarchy_ErrorMessages"><value>Mensajes de error</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoleMembership"><value>Pertenencia a roles de servidor</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseOptions"><value>Opciones de base de datos</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseRoles"><value>Roles de base de datos</value></data>
|
||||
<data name="SchemaHierarchy_RoleMemberships"><value>Pertenencias a roles</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseTriggers"><value>Desencadenadores de base de datos</value></data>
|
||||
<data name="SchemaHierarchy_DefaultConstraints"><value>Restricciones DEFAULT</value></data>
|
||||
<data name="SchemaHierarchy_Defaults"><value>Valores predeterminados</value></data>
|
||||
<data name="SchemaHierarchy_Sequences"><value>Secuencias</value></data>
|
||||
<data name="SchemaHierarchy_Endpoints"><value>Extremos</value></data>
|
||||
<data name="SchemaHierarchy_EventNotifications"><value>Notificaciones de eventos</value></data>
|
||||
<data name="SchemaHierarchy_ServerEventNotifications"><value>Notificaciones de eventos de servidor</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedProperties"><value>Propiedades extendidas</value></data>
|
||||
<data name="SchemaHierarchy_FileGroups"><value>Grupos de archivos</value></data>
|
||||
<data name="SchemaHierarchy_ForeignKeys"><value>Claves externas</value></data>
|
||||
<data name="SchemaHierarchy_FullTextCatalogs"><value>Catálogos de texto completo</value></data>
|
||||
<data name="SchemaHierarchy_FullTextIndexes"><value>Índices de texto completo</value></data>
|
||||
<data name="SchemaHierarchy_Functions"><value>Funciones</value></data>
|
||||
<data name="SchemaHierarchy_Indexes"><value>Índices</value></data>
|
||||
<data name="SchemaHierarchy_InlineFunctions"><value>Funciones Inline</value></data>
|
||||
<data name="SchemaHierarchy_Keys"><value>Claves</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServers"><value>Servidores vinculados</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServerLogins"><value>Inicios de sesión de servidor vinculado</value></data>
|
||||
<data name="SchemaHierarchy_Logins"><value>Inicios de sesión</value></data>
|
||||
<data name="SchemaHierarchy_MasterKey"><value>Clave maestra</value></data>
|
||||
<data name="SchemaHierarchy_MasterKeys"><value>Claves maestras</value></data>
|
||||
<data name="SchemaHierarchy_MessageTypes"><value>Tipos de mensaje</value></data>
|
||||
<data name="SchemaHierarchy_MultiSelectFunctions"><value>Funciones con valores de tabla</value></data>
|
||||
<data name="SchemaHierarchy_Parameters"><value>Parámetros</value></data>
|
||||
<data name="SchemaHierarchy_PartitionFunctions"><value>Funciones de partición</value></data>
|
||||
<data name="SchemaHierarchy_PartitionSchemes"><value>Esquemas de partición</value></data>
|
||||
<data name="SchemaHierarchy_Permissions"><value>Permisos</value></data>
|
||||
<data name="SchemaHierarchy_PrimaryKeys"><value>Claves principales</value></data>
|
||||
<data name="SchemaHierarchy_Programmability"><value>Programación</value></data>
|
||||
<data name="SchemaHierarchy_Queues"><value>Colas</value></data>
|
||||
<data name="SchemaHierarchy_RemoteServiceBindings"><value>Enlaces de servicio remoto</value></data>
|
||||
<data name="SchemaHierarchy_ReturnedColumns"><value>Columnas devueltos</value></data>
|
||||
<data name="SchemaHierarchy_Roles"><value>Roles</value></data>
|
||||
<data name="SchemaHierarchy_Routes"><value>Rutas</value></data>
|
||||
<data name="SchemaHierarchy_Rules"><value>Reglas</value></data>
|
||||
<data name="SchemaHierarchy_Schemas"><value>Esquemas</value></data>
|
||||
<data name="SchemaHierarchy_Security"><value>Seguridad</value></data>
|
||||
<data name="SchemaHierarchy_ServerObjects"><value>Objetos de servidor</value></data>
|
||||
<data name="SchemaHierarchy_Management"><value>Administración</value></data>
|
||||
<data name="SchemaHierarchy_ServerTriggers"><value>Desencadenadores</value></data>
|
||||
<data name="SchemaHierarchy_ServiceBroker"><value>Service Broker</value></data>
|
||||
<data name="SchemaHierarchy_Services"><value>Servicios</value></data>
|
||||
<data name="SchemaHierarchy_Signatures"><value>Firmas</value></data>
|
||||
<data name="SchemaHierarchy_LogFiles"><value>Archivos de registro</value></data>
|
||||
<data name="SchemaHierarchy_Statistics"><value>Estadísticas</value></data>
|
||||
<data name="SchemaHierarchy_Storage"><value>Almacenamiento</value></data>
|
||||
<data name="SchemaHierarchy_StoredProcedures"><value>Procedimientos almacenados</value></data>
|
||||
<data name="SchemaHierarchy_SymmetricKeys"><value>Claves simétricas</value></data>
|
||||
<data name="SchemaHierarchy_Synonyms"><value>Sinónimos</value></data>
|
||||
<data name="SchemaHierarchy_Tables"><value>Tablas</value></data>
|
||||
<data name="SchemaHierarchy_Triggers"><value>Desencadenadores</value></data>
|
||||
<data name="SchemaHierarchy_Types"><value>Tipos</value></data>
|
||||
<data name="SchemaHierarchy_UniqueKeys"><value>Claves únicas</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedDataTypes"><value>Tipos de datos definidos por el usuario</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTypes"><value>Tipos definidos por el usuario (CLR)</value></data>
|
||||
<data name="SchemaHierarchy_Users"><value>Usuarios</value></data>
|
||||
<data name="SchemaHierarchy_Views"><value>Vistas</value></data>
|
||||
<data name="SchemaHierarchy_XmlIndexes"><value>Índices XML</value></data>
|
||||
<data name="SchemaHierarchy_XMLSchemaCollections"><value>Colecciones de esquemas XML</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTableTypes"><value>Tipos de tablas definidos por el usuario</value></data>
|
||||
<data name="SchemaHierarchy_FilegroupFiles"><value>Archivos</value></data>
|
||||
<data name="MissingCaption"><value>Falta el título</value></data>
|
||||
<data name="SchemaHierarchy_BrokerPriorities"><value>Prioridades de Broker</value></data>
|
||||
<data name="SchemaHierarchy_CryptographicProviders"><value>Proveedores de servicios criptográficos</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAuditSpecifications"><value>Especificaciones de auditoría de base de datos</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseEncryptionKeys"><value>Claves de cifrado de base de datos</value></data>
|
||||
<data name="SchemaHierarchy_EventSessions"><value>Sesiones de eventos</value></data>
|
||||
<data name="SchemaHierarchy_FullTextStopLists"><value>Listas de palabras irrelevantes de texto completo</value></data>
|
||||
<data name="SchemaHierarchy_ResourcePools"><value>Grupos de recursos de servidor</value></data>
|
||||
<data name="SchemaHierarchy_ServerAudits"><value>Auditorías</value></data>
|
||||
<data name="SchemaHierarchy_ServerAuditSpecifications"><value>Especificaciones de auditoría de servidor</value></data>
|
||||
<data name="SchemaHierarchy_SpatialIndexes"><value>Índices espaciales</value></data>
|
||||
<data name="SchemaHierarchy_WorkloadGroups"><value>Grupos de cargas de trabajo</value></data>
|
||||
<data name="SchemaHierarchy_SqlFiles"><value>Archivos SQL</value></data>
|
||||
<data name="SchemaHierarchy_ServerFunctions"><value>Funciones de servidor</value></data>
|
||||
<data name="SchemaHierarchy_SqlType"><value>Tipo SQL</value></data>
|
||||
<data name="SchemaHierarchy_ServerOptions"><value>Opciones de servidor</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseDiagrams"><value>Diagramas de base de datos</value></data>
|
||||
<data name="SchemaHierarchy_SystemTables"><value>Tablas del sistema</value></data>
|
||||
<data name="SchemaHierarchy_Databases"><value>Bases de datos</value></data>
|
||||
<data name="SchemaHierarchy_SystemContracts"><value>Contratos del sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemDatabases"><value>Bases de datos del sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemMessageTypes"><value>Tipos de mensaje del sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemQueues"><value>Colas del sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemServices"><value>Servicios del sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemStoredProcedures"><value>Procedimientos almacenados del sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemViews"><value>Vistas del sistema</value></data>
|
||||
<data name="SchemaHierarchy_DataTierApplications"><value>Aplicaciones de capa de datos</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedStoredProcedures"><value>Procedimientos almacenados extendidos</value></data>
|
||||
<data name="SchemaHierarchy_SystemAggregateFunctions"><value>Funciones de agregado</value></data>
|
||||
<data name="SchemaHierarchy_SystemApproximateNumerics"><value>Valores numéricos aproximados</value></data>
|
||||
<data name="SchemaHierarchy_SystemBinaryStrings"><value>Cadenas binarias</value></data>
|
||||
<data name="SchemaHierarchy_SystemCharacterStrings"><value>Cadenas de caracteres</value></data>
|
||||
<data name="SchemaHierarchy_SystemCLRDataTypes"><value>Tipos de datos CLR</value></data>
|
||||
<data name="SchemaHierarchy_SystemConfigurationFunctions"><value>Funciones de configuración</value></data>
|
||||
<data name="SchemaHierarchy_SystemCursorFunctions"><value>Funciones del cursor</value></data>
|
||||
<data name="SchemaHierarchy_SystemDataTypes"><value>Tipos de datos del sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTime"><value>Fecha y hora</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTimeFunctions"><value>Funciones de fecha y hora</value></data>
|
||||
<data name="SchemaHierarchy_SystemExactNumerics"><value>Valores numéricos exactos</value></data>
|
||||
<data name="SchemaHierarchy_SystemFunctions"><value>Funciones del sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemHierarchyIdFunctions"><value>Funciones de id. de jerarquía</value></data>
|
||||
<data name="SchemaHierarchy_SystemMathematicalFunctions"><value>Funciones matemáticas</value></data>
|
||||
<data name="SchemaHierarchy_SystemMetadataFunctions"><value>Funciones de metadatos</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherDataTypes"><value>Otros tipos de datos</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherFunctions"><value>Otras funciones</value></data>
|
||||
<data name="SchemaHierarchy_SystemRowsetFunctions"><value>Funciones de conjunto de filas</value></data>
|
||||
<data name="SchemaHierarchy_SystemSecurityFunctions"><value>Funciones de seguridad</value></data>
|
||||
<data name="SchemaHierarchy_SystemSpatialDataTypes"><value>Tipos de datos espaciales</value></data>
|
||||
<data name="SchemaHierarchy_SystemStringFunctions"><value>Funciones de cadena</value></data>
|
||||
<data name="SchemaHierarchy_SystemSystemStatisticalFunctions"><value>Funciones estadísticas del sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemTextAndImageFunctions"><value>Funciones de texto y de imagen</value></data>
|
||||
<data name="SchemaHierarchy_SystemUnicodeCharacterStrings"><value>Cadenas de caracteres Unicode</value></data>
|
||||
<data name="SchemaHierarchy_AggregateFunctions"><value>Funciones de agregado</value></data>
|
||||
<data name="SchemaHierarchy_ScalarValuedFunctions"><value>Funciones escalares</value></data>
|
||||
<data name="SchemaHierarchy_TableValuedFunctions"><value>Funciones con valores de tabla</value></data>
|
||||
<data name="SchemaHierarchy_SystemExtendedStoredProcedures"><value>Procedimientos almacenados extendidos del sistema</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInType"><value>Tipos integrados</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInServerRole"><value>Roles de servidor integrados</value></data>
|
||||
<data name="SchemaHierarchy_UserWithPassword"><value>Usuario con contraseña</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyList"><value>Lista de propiedades de búsqueda</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPolicies"><value>Directivas de seguridad</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPredicates"><value>Predicados de seguridad</value></data>
|
||||
<data name="SchemaHierarchy_ServerRole"><value>Rol de servidor</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyLists"><value>Listas de propiedades de búsqueda</value></data>
|
||||
<data name="SchemaHierarchy_ColumnStoreIndexes"><value>Índices de almacenamiento de columnas</value></data>
|
||||
<data name="SchemaHierarchy_TableTypeIndexes"><value>Índices de tipo de tabla</value></data>
|
||||
<data name="SchemaHierarchy_SelectiveXmlIndexes"><value>Índices XML selectivos</value></data>
|
||||
<data name="SchemaHierarchy_XmlNamespaces"><value>Espacios de nombres XML</value></data>
|
||||
<data name="SchemaHierarchy_XmlTypedPromotedPaths"><value>Rutas de acceso promovidas de tipo XML</value></data>
|
||||
<data name="SchemaHierarchy_SqlTypedPromotedPaths"><value>Rutas de acceso promovidas de tipo T-SQL</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseScopedCredentials"><value>Credenciales de ámbito de base de datos</value></data>
|
||||
<data name="SchemaHierarchy_ExternalDataSources"><value>Orígenes de datos externos</value></data>
|
||||
<data name="SchemaHierarchy_ExternalFileFormats"><value>Formatos de archivo externo</value></data>
|
||||
<data name="SchemaHierarchy_ExternalResources"><value>Recursos externos</value></data>
|
||||
<data name="SchemaHierarchy_ExternalTables"><value>Tablas externas</value></data>
|
||||
<data name="SchemaHierarchy_AlwaysEncryptedKeys"><value>Siempre claves cifradas</value></data>
|
||||
<data name="SchemaHierarchy_ColumnMasterKeys"><value>Claves maestras de columna</value></data>
|
||||
<data name="SchemaHierarchy_ColumnEncryptionKeys"><value>Claves de cifrado de columna</value></data>
|
||||
<data name="SchemaHierarchy_Server"><value>Servidor</value></data>
|
||||
<data name="ScriptingParams_ConnectionString_Property_Invalid"><value>Error interpretando la propiedad ScriptingParams.ConnectionString</value></data>
|
||||
<data name="ScriptingParams_FilePath_Property_Invalid"><value>El directorio especificado en la propiedad ScriptingParams.FilePath no es válido</value></data>
|
||||
<data name="ScriptingListObjectsCompleteParams_ConnectionString_Property_Invalid"><value>Error interpretando la propiedad ScriptingListObjectsCompleteParams.ConnectionString</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterLabelFormatString"><value>{0} ({1}, {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterNoDefaultLabel"><value>Sin valores predeterminados</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputLabel"><value>Entrada</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputLabel"><value>Entrada/salida</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputReadOnlyLabel"><value>Entrada/solo lectura</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputReadOnlyLabel"><value>Entrada/salida/solo lectura</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterDefaultLabel"><value>Predeterminado</value></data>
|
||||
<data name="SchemaHierarchy_NullColumn_Label"><value>NULL</value></data>
|
||||
<data name="SchemaHierarchy_NotNullColumn_Label"><value>no es NULL</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithType"><value>{0} ({1}, {2})</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithoutType"><value>{0} ({1})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithType"><value>{0} ({1}calculado, {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithoutType"><value>{0} ({1}calculado)</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithoutType"><value>{0} (Conjunto de columnas, {1})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithType"><value>{0} (Conjunto de columnas, {1}{2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithTypeAndKeyString"><value>{0} (Conjunto de columnas, {1}, {2}, {3})</value></data>
|
||||
<data name="UniqueIndex_LabelPart"><value>Único</value></data>
|
||||
<data name="NonUniqueIndex_LabelPart"><value>No único</value></data>
|
||||
<data name="ClusteredIndex_LabelPart"><value>Clúster</value></data>
|
||||
<data name="NonClusteredIndex_LabelPart"><value>No en clúster</value></data>
|
||||
<data name="History_LabelPart"><value>Historial</value></data>
|
||||
<data name="SystemVersioned_LabelPart"><value>Con versión del sistema</value></data>
|
||||
<data name="unavailable"><value>No disponible</value></data>
|
||||
<data name="filegroup_dialog_defaultFilegroup"><value>Grupo de archivos predeterminado: {0}</value></data>
|
||||
<data name="filegroup_dialog_title"><value>Grupo de archivos nuevo para: {0}</value></data>
|
||||
<data name="filegroups_default"><value>Predeterminado</value></data>
|
||||
<data name="filegroups_files"><value>Archivos</value></data>
|
||||
<data name="filegroups_name"><value>Nombre</value></data>
|
||||
<data name="filegroups_readonly"><value>Solo lectura</value></data>
|
||||
<data name="general_autogrowth"><value>Crecimiento automático / tamaño máximo</value></data>
|
||||
<data name="general_builderText"><value>...</value></data>
|
||||
<data name="general_default"><value><predeterminado></value></data>
|
||||
<data name="general_fileGroup"><value>Grupo de archivos</value></data>
|
||||
<data name="general_fileName"><value>Nombre lógico</value></data>
|
||||
<data name="general_fileType"><value>Tipo de archivo</value></data>
|
||||
<data name="general_initialSize"><value>Tamaño inicial (MB)</value></data>
|
||||
<data name="general_newFilegroup"><value><nuevo grupo de archivos></value></data>
|
||||
<data name="general_path"><value>Ruta de acceso</value></data>
|
||||
<data name="general_physicalFileName"><value>Nombre de archivo</value></data>
|
||||
<data name="general_rawDevice"><value><dispositivo sin formato></value></data>
|
||||
<data name="general_recoveryModel_bulkLogged"><value>Registro masivo</value></data>
|
||||
<data name="general_recoveryModel_full"><value>Completo</value></data>
|
||||
<data name="general_recoveryModel_simple"><value>Simple</value></data>
|
||||
<data name="general_titleSearchOwner"><value>Seleccionar propietario de base de datos</value></data>
|
||||
<data name="prototype_autogrowth_disabled"><value>Ninguno</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByMB"><value>Por {0} MB, limitado a {1} MB</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByPercent"><value>Por {0} porciento, limitado a {1} MB</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByMB"><value>Por {0} MB, sin límite</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByPercent"><value>Por {0} porciento, sin límite</value></data>
|
||||
<data name="prototype_autogrowth_unlimitedfilestream"><value>Sin límite</value></data>
|
||||
<data name="prototype_autogrowth_limitedfilestream"><value>Limitado a {0} MB</value></data>
|
||||
<data name="prototype_db_category_automatic"><value>Automático</value></data>
|
||||
<data name="prototype_db_category_servicebroker"><value>Service Broker</value></data>
|
||||
<data name="prototype_db_category_collation"><value>Intercalación</value></data>
|
||||
<data name="prototype_db_category_cursor"><value>Cursor</value></data>
|
||||
<data name="prototype_db_category_misc"><value>Varios</value></data>
|
||||
<data name="prototype_db_category_recovery"><value>Recuperación</value></data>
|
||||
<data name="prototype_db_category_state"><value>Estado</value></data>
|
||||
<data name="prototype_db_prop_ansiNullDefault"><value>ANSI NULL predeterminado</value></data>
|
||||
<data name="prototype_db_prop_ansiNulls"><value>ANSI NULLS habilitados</value></data>
|
||||
<data name="prototype_db_prop_ansiPadding"><value>Relleno ANSI habilitado</value></data>
|
||||
<data name="prototype_db_prop_ansiWarnings"><value>Advertencias ANSI habilitadas</value></data>
|
||||
<data name="prototype_db_prop_arithabort"><value>Anulación aritmética habilitada</value></data>
|
||||
<data name="prototype_db_prop_autoClose"><value>Cierre automático</value></data>
|
||||
<data name="prototype_db_prop_autoCreateStatistics"><value>Crear estadísticas automáticamente</value></data>
|
||||
<data name="prototype_db_prop_autoShrink"><value>Reducir automáticamente</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatistics"><value>Actualizar estadísticas automáticamente</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatisticsAsync"><value>Actualizar estadísticas automáticamente de forma asincrónica</value></data>
|
||||
<data name="prototype_db_prop_caseSensitive"><value>Sensible a mayúsculas y minúsculas</value></data>
|
||||
<data name="prototype_db_prop_closeCursorOnCommit"><value>Cierre del cursor al confirmar habilitado</value></data>
|
||||
<data name="prototype_db_prop_collation"><value>Intercalación</value></data>
|
||||
<data name="prototype_db_prop_concatNullYieldsNull"><value>Concatenar valores NULL produce NULL</value></data>
|
||||
<data name="prototype_db_prop_databaseCompatibilityLevel"><value>Nivel de compatibilidad de base de datos</value></data>
|
||||
<data name="prototype_db_prop_databaseState"><value>Estado de la base de datos</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor"><value>Cursor predeterminado</value></data>
|
||||
<data name="prototype_db_prop_fullTextIndexing"><value>Índice de texto completo habilitado</value></data>
|
||||
<data name="prototype_db_prop_numericRoundAbort"><value>Anular redondeo numérico</value></data>
|
||||
<data name="prototype_db_prop_pageVerify"><value>Comprobación de página</value></data>
|
||||
<data name="prototype_db_prop_quotedIdentifier"><value>Identificadores entre comillas habilitados</value></data>
|
||||
<data name="prototype_db_prop_readOnly"><value>Base de datos de solo lectura</value></data>
|
||||
<data name="prototype_db_prop_recursiveTriggers"><value>Desencadenadores recursivos habilitados</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess"><value>Restringir acceso</value></data>
|
||||
<data name="prototype_db_prop_selectIntoBulkCopy"><value>Select Into/Bulk Copy</value></data>
|
||||
<data name="prototype_db_prop_honorBrokerPriority"><value>Asignar prioridad de agente</value></data>
|
||||
<data name="prototype_db_prop_serviceBrokerGuid"><value>Identificador de Service Broker</value></data>
|
||||
<data name="prototype_db_prop_brokerEnabled"><value>Broker habilitado</value></data>
|
||||
<data name="prototype_db_prop_truncateLogOnCheckpoint"><value>Truncar registro en el punto de control</value></data>
|
||||
<data name="prototype_db_prop_dbChaining"><value>Encadenamiento de propiedad entre bases de datos habilitado</value></data>
|
||||
<data name="prototype_db_prop_trustworthy"><value>De confianza</value></data>
|
||||
<data name="prototype_db_prop_dateCorrelationOptimization"><value>Optimización de correlación de fechas Enabledprototype_db_prop_parameterization = Parameterization</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_forced"><value>Forzado</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_simple"><value>Simple</value></data>
|
||||
<data name="prototype_file_dataFile"><value>Datos de ROWS</value></data>
|
||||
<data name="prototype_file_logFile"><value>LOG</value></data>
|
||||
<data name="prototype_file_filestreamFile"><value>Datos de FILESTREAM</value></data>
|
||||
<data name="prototype_file_noFileGroup"><value>No aplicable</value></data>
|
||||
<data name="prototype_file_defaultpathstring"><value><ruta predeterminada></value></data>
|
||||
<data name="title_openConnectionsMustBeClosed"><value>Conexiones abiertas</value></data>
|
||||
<data name="warning_openConnectionsMustBeClosed"><value>Para cambiar las propiedades de la base de datos, SQL Server debe cerrar todas las otras conexiones a la base de datos. ¿Seguro que desea cambiar las propiedades y cerrar todas las otras conexiones?</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_autoClosed"><value>AUTO_CLOSED</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_emergency"><value>EMERGENCY</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_inaccessible"><value>INACCESSIBLE</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_normal"><value>NORMAL</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_offline"><value>OFFLINE</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recovering"><value>RECOVERING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recoveryPending"><value>RECOVERY PENDING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_restoring"><value>RESTORING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_shutdown"><value>SHUTDOWN</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_standby"><value>STANDBY</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_suspect"><value>SUSPECT</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_global"><value>GLOBAL</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_local"><value>LOCAL</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_multiple"><value>MULTI_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_restricted"><value>RESTRICTED_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_single"><value>SINGLE_USER</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_checksum"><value>CHECKSUM</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_none"><value>NONE</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_tornPageDetection"><value>TORN_PAGE_DETECTION</value></data>
|
||||
<data name="prototype_db_prop_varDecimalEnabled"><value>Formato de almacenamiento VarDecimal habilitado</value></data>
|
||||
<data name="compatibilityLevel_katmai"><value>SQL Server 2008 (100)</value></data>
|
||||
<data name="prototype_db_prop_encryptionEnabled"><value>Cifrado habilitado</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_off"><value>OFF</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_on"><value>ON</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_primary"><value>PRIMARY</value></data>
|
||||
<data name="error_db_prop_invalidleadingColumns"><value>Para la directiva de distribución HASH, el número de columnas iniciales hash es opcional pero debe de ser entre 1 y 16 columnas</value></data>
|
||||
<data name="compatibilityLevel_denali"><value>SQL Server 2012 (110)</value></data>
|
||||
<data name="compatibilityLevel_sql14"><value>SQL Server 2014 (120)</value></data>
|
||||
<data name="compatibilityLevel_sql15"><value>SQL Server 2016 (130)</value></data>
|
||||
<data name="compatibilityLevel_sqlvNext"><value>SQL Server vNext (140)</value></data>
|
||||
<data name="general_containmentType_None"><value>Ninguno</value></data>
|
||||
<data name="general_containmentType_Partial"><value>Parcial</value></data>
|
||||
<data name="filegroups_filestreamFiles"><value>Archivos FILESTREAM</value></data>
|
||||
<data name="prototype_file_noApplicableFileGroup"><value>Grupo de archivos no aplicable</value></data>
|
||||
<data name="DatabaseNotAccessible"><value>La base de datos {0} no es accesible.</value></data>
|
||||
<data name="QueryServiceResultSetHasNoResults"><value>La consulta no devolvió resultados</value></data>
|
||||
<data name="QueryServiceResultSetTooLarge"><value>El conjunto de resultados contiene demasiada filas para cargarlo de forma segura</value></data>
|
||||
<data name="prototype_db_prop_parameterization"><value>Parametrización</value></data>
|
||||
<data name="ConflictWithNoRecovery"><value>No se permite restaurar una copia de seguridad con la opción NORECOVERY</value></data>
|
||||
<data name="InvalidPathForDatabaseFile"><value>Ruta de archivo no válida: '{0}'</value></data>
|
||||
<data name="Log"><value>Registro</value></data>
|
||||
<data name="RestorePlanFailed"><value>No se pudo crear un plan de restauraciones</value></data>
|
||||
<data name="RestoreNotSupported"><value>No se admite restaurar la base de datos</value></data>
|
||||
<data name="RestoreTaskName"><value>Restaurar base de datos</value></data>
|
||||
<data name="RestoreCopyOnly"><value>(Copiar solamente)</value></data>
|
||||
<data name="RestoreBackupSetComponent"><value>Componente</value></data>
|
||||
<data name="RestoreBackupSetType"><value>Tipo</value></data>
|
||||
<data name="RestoreBackupSetServer"><value>Servidor</value></data>
|
||||
<data name="RestoreBackupSetDatabase"><value>Base de datos</value></data>
|
||||
<data name="RestoreBackupSetPosition"><value>Posición</value></data>
|
||||
<data name="RestoreBackupSetFirstLsn"><value>Primer LSN</value></data>
|
||||
<data name="RestoreBackupSetLastLsn"><value>Último LSN</value></data>
|
||||
<data name="RestoreBackupSetCheckpointLsn"><value>Checkpoint LSN</value></data>
|
||||
<data name="RestoreBackupSetFullLsn"><value>LSN completo</value></data>
|
||||
<data name="RestoreBackupSetStartDate"><value>Fecha de inicio</value></data>
|
||||
<data name="RestoreBackupSetFinishDate"><value>Fecha de finalización</value></data>
|
||||
<data name="RestoreBackupSetSize"><value>Tamaño</value></data>
|
||||
<data name="RestoreBackupSetUserName"><value>Nombre del usuario</value></data>
|
||||
<data name="RestoreBackupSetExpiration"><value>Expiración</value></data>
|
||||
<data name="RestoreBackupSetName"><value>Nombre</value></data>
|
||||
<data name="TheLastBackupTaken"><value>La última copia de seguridad tomada ({0})</value></data>
|
||||
<data name="BackupTaskName"><value>Copia de seguridad de la base de datos</value></data>
|
||||
<data name="TaskInProgress"><value>En curso</value></data>
|
||||
<data name="TaskCompleted"><value>Completado</value></data>
|
||||
<data name="ScriptTaskName"><value>scripting </value></data>
|
||||
<data name="ProfilerConnectionNotFound"><value>Conexión no encontrada</value></data>
|
||||
<data name="BackupPathIsFolderError"><value>El nombre del archivo especificado es un nombre de directorio: {0}</value></data>
|
||||
<data name="InvalidBackupPathError"><value>No se puede verificar la existencia de la ubicación del archivo de copia de seguridad: {0}</value></data>
|
||||
<data name="InvalidPathError"><value>No se puede acceder a la ruta de acceso especificada en el servidor: {0}</value></data>
|
||||
<data name="NoBackupsetsToRestore"><value>Ningún backupset seleccionado para ser restaurado</value></data>
|
||||
<data name="NeverBackedUp"><value>Nunca</value></data>
|
||||
<data name="AzureSqlDbEdition"><value>Azure SQL Database </value></data>
|
||||
<data name="AzureSqlDwEdition"><value>Azure SQL Data Warehouse</value></data>
|
||||
<data name="AzureSqlStretchEdition"><value>Azure SQL Stretch Database</value></data>
|
||||
<data name="Error_InvalidDirectoryName"><value>La ruta de acceso [{0}] no es un directorio válido</value></data>
|
||||
<data name="Error_ExistingDirectoryName"><value>Ya existe un archivo {1} en el directorio '{0}'</value></data>
|
||||
<data name="EditDataValueTooLarge"><value>El valor {0} es muy grande para el tipo de columna {1} </value></data>
|
||||
</root>
|
||||
489
src/Microsoft.SqlTools.CoreServices/Localization/sr.fr.resx
Normal file
489
src/Microsoft.SqlTools.CoreServices/Localization/sr.fr.resx
Normal file
@@ -0,0 +1,489 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype"><value>text/microsoft-resx</value></resheader><resheader name="version"><value>1.3</value></resheader><resheader name="reader"><value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><resheader name="writer"><value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><data name="ConnectionServiceConnectErrorNullParams"><value>Les paramètres de connexion ne peuvent pas être null</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNullOwnerUri"><value>OwnerUri ne peut pas être null ou vide.</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNotConnected"><value>SpecifiedUri '{0}' n’a pas de connexion existante</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidAuthType"><value>Valeur '{0}' non valide pour AuthenticationType. Les valeurs valides sont 'Integrated' et 'SqlLogin'.</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidIntent"><value>Valeur '{0}' non valide pour ApplicationIntent. Les valeurs valides sont 'ReadWrite' et 'ReadOnly'.</value></data>
|
||||
<data name="ConnectionServiceConnectionCanceled"><value>Connexion annulée</value></data>
|
||||
<data name="ConnectionParamsValidateNullOwnerUri"><value>OwnerUri ne peut pas être null ou vide.</value></data>
|
||||
<data name="ConnectionParamsValidateNullConnection"><value>L'objet "détails de connexion" ne peut pas être null</value></data>
|
||||
<data name="ConnectionParamsValidateNullServerName"><value>ServerName ne peut pas être null ou vide</value></data>
|
||||
<data name="ConnectionParamsValidateNullSqlAuth"><value>{0} ne peut pas être nul ou vide quand l'authentification SqlLogin est utilisée</value></data>
|
||||
<data name="QueryServiceCancelAlreadyCompleted"><value>La requête est déjà terminée, elle ne peut pas être annulée.</value></data>
|
||||
<data name="QueryServiceCancelDisposeFailed"><value>Requête annulée avec succès, échec de la libération de la requête. L'URI propriétaire n'a pas été trouvée.</value></data>
|
||||
<data name="QueryServiceQueryCancelled"><value>La requête a été annulée par l’utilisateur</value></data>
|
||||
<data name="QueryServiceSubsetBatchNotCompleted"><value>Le lot n’a pas terminé encore</value></data>
|
||||
<data name="QueryServiceSubsetBatchOutOfRange"><value>Index de lot ne peut pas être inférieur à 0 ou supérieur au nombre de lots</value></data>
|
||||
<data name="QueryServiceSubsetResultSetOutOfRange"><value>L'index de résultats ne peut pas être inférieur à 0 ou supérieur au nombre de résultats</value></data>
|
||||
<data name="QueryServiceDataReaderByteCountInvalid"><value>Le nombre maximal d'octets à renvoyer doit être supérieur à zéro</value></data>
|
||||
<data name="QueryServiceDataReaderCharCountInvalid"><value>Le nombre maximal de caractères à renvoyer doit être supérieur à zéro</value></data>
|
||||
<data name="QueryServiceDataReaderXmlCountInvalid"><value>Le nombre maximal d’octets XML à renvoyer doit être supérieur à zéro</value></data>
|
||||
<data name="QueryServiceFileWrapperWriteOnly"><value>Méthode d’accès ne peut pas être en écriture seule</value></data>
|
||||
<data name="QueryServiceFileWrapperNotInitialized"><value>FileStreamWrapper doit être initialisée avant d’effectuer des opérations</value></data>
|
||||
<data name="QueryServiceFileWrapperReadOnly"><value>Ce FileStreamWrapper ne peut pas être utilisé pour l’écriture</value></data>
|
||||
<data name="QueryServiceAffectedOneRow"><value>(1 ligne affectée)</value></data>
|
||||
<data name="QueryServiceAffectedRows"><value>({0} lignes affectées)</value></data>
|
||||
<data name="QueryServiceCompletedSuccessfully"><value>Commandes terminées avec succès.</value></data>
|
||||
<data name="QueryServiceErrorFormat"><value>Msg {0}, au niveau état {2}, {1}, ligne {3} {4} {5}</value></data>
|
||||
<data name="QueryServiceQueryFailed"><value>La requête a échoué : {0}</value></data>
|
||||
<data name="QueryServiceColumnNull"><value>(Aucun nom de colonne)</value></data>
|
||||
<data name="QueryServiceRequestsNoQuery"><value>La requête demandée n’existe pas</value></data>
|
||||
<data name="QueryServiceQueryInvalidOwnerUri"><value>Cet éditeur n’est pas connecté à une base de données</value></data>
|
||||
<data name="QueryServiceQueryInProgress"><value>Une requête est déjà en cours pour cette session d’éditeur. Veuillez annuler cette requête, ou attendre son achèvement.</value></data>
|
||||
<data name="QueryServiceMessageSenderNotSql"><value>L’expéditeur de l’événement de OnInfoMessage doit être un objet SqlConnection</value></data>
|
||||
<data name="QueryServiceSaveAsResultSetNotComplete"><value>Impossible d’enregistrer les résultats jusqu'à ce que l’exécution de la requête est terminée.</value></data>
|
||||
<data name="QueryServiceSaveAsMiscStartingError"><value>Une erreur interne s'est produite lors du démarrage de la tâche de sauvegarde.</value></data>
|
||||
<data name="QueryServiceSaveAsInProgress"><value>Une requête de sauvegarde vers le même chemin est en cours</value></data>
|
||||
<data name="QueryServiceSaveAsFail"><value>Impossible d’enregistrer {0} : {1}</value></data>
|
||||
<data name="QueryServiceResultSetNotRead"><value>Impossible de lire le sous-élément à moins que les résultats aient été lus depuis le serveur</value></data>
|
||||
<data name="QueryServiceResultSetStartRowOutOfRange"><value>La ligne de début ne peut pas être inférieure à 0 ou supérieure au nombre de lignes de résultats</value></data>
|
||||
<data name="QueryServiceResultSetRowCountOutOfRange"><value>Le nombre de lignes doit être un entier positif</value></data>
|
||||
<data name="QueryServiceResultSetNoColumnSchema"><value>Impossible de récupérer le schéma des colonnes pour le jeu de résultats</value></data>
|
||||
<data name="QueryServiceExecutionPlanNotFound"><value>Impossible de récupérer un plan d’exécution pour le jeu de résultats</value></data>
|
||||
<data name="PeekDefinitionAzureError"><value>Cette fonctionnalité n'est actuellement pas supportée sur Azure SQL DB et Data Warehouse : {0}</value></data>
|
||||
<data name="PeekDefinitionError"><value>Une erreur inattendue s'est produite lors de l'exécution du coup d'oeil à la définition: {0}.</value></data>
|
||||
<data name="PeekDefinitionNoResultsError"><value>Aucun résultat trouvé.</value></data>
|
||||
<data name="PeekDefinitionDatabaseError"><value>Aucun objet de base de données n'a été récupéré.</value></data>
|
||||
<data name="PeekDefinitionNotConnectedError"><value>Veuillez vous connecter à un serveur.</value></data>
|
||||
<data name="PeekDefinitionTimedoutError"><value>Opération a expiré.</value></data>
|
||||
<data name="PeekDefinitionTypeNotSupportedError"><value>Ce type d'objet n'est actuellement pas supporté par cette fonctionnalité</value></data>
|
||||
<data name="WorkspaceServicePositionLineOutOfRange"><value>La position est en dehors de la plage de lignes du fichier</value></data>
|
||||
<data name="WorkspaceServicePositionColumnOutOfRange"><value>La position est en dehors de la plage de colonnes pour la ligne {0}</value></data>
|
||||
<data name="WorkspaceServiceBufferPositionOutOfOrder"><value>Position de début ({0}, {1}) doit précéder ou être égale à la position de fin ({2}, {3})</value></data>
|
||||
<data name="EE_BatchSqlMessageNoProcedureInfo"><value>Msg {0}, Niveau {1}, État {2}, Ligne {3}</value></data>
|
||||
<data name="EE_BatchSqlMessageWithProcedureInfo"><value>Msg {0}, Niveau {1}, État {2}, Procédure {3}, Ligne {4}</value></data>
|
||||
<data name="EE_BatchSqlMessageNoLineInfo"><value>Msg {0}, Niveau {1}, État {2}</value></data>
|
||||
<data name="EE_BatchError_Exception"><value>Une erreur s'est produite lors du traitement du lot. Le message d'erreur est : {0}</value></data>
|
||||
<data name="EE_BatchExecutionInfo_RowsAffected"><value>({0} lignes affectées)</value></data>
|
||||
<data name="EE_ExecutionNotYetCompleteError"><value>L'exécution précédente n'est pas encore terminée.</value></data>
|
||||
<data name="EE_ScriptError_Error"><value>Une erreur de script s'est produite.</value></data>
|
||||
<data name="EE_ScriptError_ParsingSyntax"><value>Une syntaxe incorrecte a été trouvée lors de l'analyse de {0}.</value></data>
|
||||
<data name="EE_ScriptError_FatalError"><value>Une erreur irrécupérable s'est produite.</value></data>
|
||||
<data name="EE_ExecutionInfo_FinalizingLoop"><value>L'exécution a été effectuée {0} fois...</value></data>
|
||||
<data name="EE_ExecutionInfo_QueryCancelledbyUser"><value>Vous avez annulé la requête.</value></data>
|
||||
<data name="EE_BatchExecutionError_Halting"><value>Une erreur s'est produite lors de l'exécution du lot.</value></data>
|
||||
<data name="EE_BatchExecutionError_Ignoring"><value>Une erreur s'est produite lors de l'exécution du lot, mais elle a été ignorée.</value></data>
|
||||
<data name="EE_ExecutionInfo_InitializingLoop"><value>Beginning execution loop</value></data>
|
||||
<data name="EE_ExecutionError_CommandNotSupported"><value>La commande {0} n'est pas prise en charge.</value></data>
|
||||
<data name="EE_ExecutionError_VariableNotFound"><value>Impossible de trouver la variable {0}.</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineError"><value>Erreur d’exécution de SQL : {0}</value></data>
|
||||
<data name="BatchParserWrapperExecutionError"><value>Exécution du wrapper de l'analyseur du lot : {0} trouvé... à la ligne {1} : {2} Description : {3}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchMessage"><value>Message reçu du lot du moteur d'exécution du wrapper de l'analyseur du lot : Message : {0} Message détaillé : {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetProcessing"><value>Traitement du ResultSet du lot du moteur d'exécution du wrapper de l'analyseur du lot : DataReader.FieldCount : {0} DataReader.RecordsAffected : {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetFinished"><value>ResultSet du lot du moteur d'exécution du wrapper de l'analyseur du lot terminé.</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchCancelling"><value>Annulation de l'exécution du lot du wrapper de l'analyseur du lot.</value></data>
|
||||
<data name="EE_ScriptError_Warning"><value>Avertissement de script.</value></data>
|
||||
<data name="TroubleshootingAssistanceMessage"><value>Pour plus d'informations sur cette erreur, consultez les rubriques de dépannage dans la documentation du produit.</value></data>
|
||||
<data name="BatchParser_CircularReference"><value>Le fichier '{0}' a été inclus de manière récursive.</value></data>
|
||||
<data name="BatchParser_CommentNotTerminated"><value>La marque de commentaire de fin '*/' est manquante.</value></data>
|
||||
<data name="BatchParser_StringNotTerminated"><value>Guillemets non fermés après la chaîne de caractères.</value></data>
|
||||
<data name="BatchParser_IncorrectSyntax"><value>Détection d'une syntaxe incorrecte pendant l'analyse de '{0}'.</value></data>
|
||||
<data name="BatchParser_VariableNotDefined"><value>La variable {0} n'est pas définie.</value></data>
|
||||
<data name="TestLocalizationConstant"><value>test</value></data>
|
||||
<data name="ErrorEmptyStringReplacement"><value>Remplacement d’une chaîne vide à une chaîne vide.</value></data>
|
||||
<data name="EditDataSessionNotFound"><value>La session d'édition n’existe pas.</value></data>
|
||||
<data name="EditDataQueryNotCompleted"><value>La requête n’a pas terminé l’exécution</value></data>
|
||||
<data name="EditDataQueryImproperResultSets"><value>La requête n’a pas généré exactement un jeu de résultats</value></data>
|
||||
<data name="EditDataFailedAddRow"><value>Impossible d’ajouter la nouvelle ligne pour mettre à jour le cache</value></data>
|
||||
<data name="EditDataRowOutOfRange"><value>L'identifiant de ligne spécifié est en dehors de la plage de lignes dans le cache d’édition</value></data>
|
||||
<data name="EditDataUpdatePending"><value>Une mise à jour est déjà en attente pour cette ligne et doit être d’abord annulée</value></data>
|
||||
<data name="EditDataUpdateNotPending"><value>L'identifiant de la ligne n'a pas de mise à jour en attente</value></data>
|
||||
<data name="EditDataObjectMetadataNotFound"><value>Les métadonnées de la table ou de la vue n’ont pas pu être trouvées</value></data>
|
||||
<data name="EditDataInvalidFormatBinary"><value>Format invalide pour une colonne binary</value></data>
|
||||
<data name="EditDataInvalidFormatBoolean"><value>Les colonnes booléennes doivent être un numérique 1 ou 0, ou une chaîne true ou false</value></data>
|
||||
<data name="EditDataCreateScriptMissingValue"><value>Une valeur de cellule requise est manquante.</value></data>
|
||||
<data name="EditDataDeleteSetCell"><value>Une suppression est en attente pour cette ligne, une mise à jour de cellule ne peut pas être appliquée.</value></data>
|
||||
<data name="EditDataColumnIdOutOfRange"><value>La colonne Id doit être dans la plage des colonnes de la requête</value></data>
|
||||
<data name="EditDataColumnCannotBeEdited"><value>La colonne ne peut pas être éditée</value></data>
|
||||
<data name="EditDataColumnNoKeyColumns"><value>Aucune colonne clé n'a été trouvée</value></data>
|
||||
<data name="EditDataScriptFilePathNull"><value>Un nom de fichier de sortie doit être fourni</value></data>
|
||||
<data name="EditDataUnsupportedObjectType"><value>L'objet de base de données {0} ne peut pas être utilisé pour éditer</value></data>
|
||||
<data name="ConnectionServiceDbErrorDefaultNotConnected"><value>L'Uri spécifiée '{0}' n’a pas de connexion par défaut</value></data>
|
||||
<data name="EditDataCommitInProgress"><value>Une tâche commit est en cours. Veuillez, s'il vous plaît, attendre la fin.</value></data>
|
||||
<data name="SqlScriptFormatterDecimalMissingPrecision"><value>La colonne decimal manque d'une précision numérique</value></data>
|
||||
<data name="EditDataComputedColumnPlaceholder"><value><TBD></value></data>
|
||||
<data name="QueryServiceResultSetAddNoRows"><value>Impossible d'ajouter une ligne au tampon de résultats, le data reader ne contient aucune ligne</value></data>
|
||||
<data name="EditDataTimeOver24Hrs"><value>Les valeurs de colonne TIME doivent être contenues entre 00:00:00.0000000 et 23:59:59.9999999</value></data>
|
||||
<data name="EditDataNullNotAllowed"><value>NULL n'est pas autorisé pour cette colonne</value></data>
|
||||
<data name="EditDataSessionAlreadyExists"><value>La session d'édition existe déjà.</value></data>
|
||||
<data name="EditDataSessionNotInitialized"><value>La session d'édition n'a pas été initialisée</value></data>
|
||||
<data name="EditDataSessionAlreadyInitialized"><value>La session d'édition a déjà été initialisée</value></data>
|
||||
<data name="EditDataSessionAlreadyInitializing"><value>La session d'édition a déjà été initialisée ou est en cours d'initialisation</value></data>
|
||||
<data name="EditDataQueryFailed"><value>L'exécution de la requête a échoué, voir les messages pour plus de détails</value></data>
|
||||
<data name="EditDataFilteringNegativeLimit"><value>La limite de résultat ne peut pas être négative</value></data>
|
||||
<data name="QueryServiceCellNull"><value>NULL</value></data>
|
||||
<data name="EditDataMetadataObjectNameRequired"><value>Un nom d'objet doit être fourni</value></data>
|
||||
<data name="EditDataMetadataTooManyIdentifiers"><value>La spécification explicite du serveur ou de la base de données n'est pas pris en charge</value></data>
|
||||
<data name="EditDataMetadataNotExtended"><value>Les métadonnées de tables n'ont pas de propriétés étendues</value></data>
|
||||
<data name="EditDataObjectNotFound"><value>La table ou la vue demandée pour édition n'a pas pu être trouvée</value></data>
|
||||
<data name="TreeNodeError"><value>Erreur en développant : {0}</value></data>
|
||||
<data name="ServerNodeConnectionError"><value>Erreur en se connectant à {0}</value></data>
|
||||
<data name="SchemaHierarchy_Aggregates"><value>Agrégats</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoles"><value>Rôles serveur</value></data>
|
||||
<data name="SchemaHierarchy_ApplicationRoles"><value>Rôles d'application</value></data>
|
||||
<data name="SchemaHierarchy_Assemblies"><value>Assemblys</value></data>
|
||||
<data name="SchemaHierarchy_AssemblyFiles"><value>Fichiers d'assembly</value></data>
|
||||
<data name="SchemaHierarchy_AsymmetricKeys"><value>Clés asymétriques</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAsymmetricKeys"><value>Clés asymétriques</value></data>
|
||||
<data name="SchemaHierarchy_DataCompressionOptions"><value>Options de compression de données</value></data>
|
||||
<data name="SchemaHierarchy_Certificates"><value>Certificats</value></data>
|
||||
<data name="SchemaHierarchy_FileTables"><value>FileTables</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseCertificates"><value>Certificats</value></data>
|
||||
<data name="SchemaHierarchy_CheckConstraints"><value>Contraintes de validation</value></data>
|
||||
<data name="SchemaHierarchy_Columns"><value>Colonnes</value></data>
|
||||
<data name="SchemaHierarchy_Constraints"><value>Contraintes</value></data>
|
||||
<data name="SchemaHierarchy_Contracts"><value>Contrats</value></data>
|
||||
<data name="SchemaHierarchy_Credentials"><value>Informations d'identification</value></data>
|
||||
<data name="SchemaHierarchy_ErrorMessages"><value>Messages d'erreur</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoleMembership"><value>Appartenance au rôle de serveur</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseOptions"><value>Options de la base de données</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseRoles"><value>Rôles de base de données</value></data>
|
||||
<data name="SchemaHierarchy_RoleMemberships"><value>Appartenances aux rôles</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseTriggers"><value>Déclencheurs de base de données</value></data>
|
||||
<data name="SchemaHierarchy_DefaultConstraints"><value>Contraintes par défaut</value></data>
|
||||
<data name="SchemaHierarchy_Defaults"><value>Par défaut</value></data>
|
||||
<data name="SchemaHierarchy_Sequences"><value>Séquences</value></data>
|
||||
<data name="SchemaHierarchy_Endpoints"><value>Points de terminaison</value></data>
|
||||
<data name="SchemaHierarchy_EventNotifications"><value>Notifications d'événements</value></data>
|
||||
<data name="SchemaHierarchy_ServerEventNotifications"><value>Notifications d'événements du serveur</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedProperties"><value>Propriétés étendues</value></data>
|
||||
<data name="SchemaHierarchy_FileGroups"><value>Groupes de fichiers</value></data>
|
||||
<data name="SchemaHierarchy_ForeignKeys"><value>Clés étrangères</value></data>
|
||||
<data name="SchemaHierarchy_FullTextCatalogs"><value>Catalogues de recherche en texte intégral</value></data>
|
||||
<data name="SchemaHierarchy_FullTextIndexes"><value>Index de recherche en texte intégral</value></data>
|
||||
<data name="SchemaHierarchy_Functions"><value>Fonctions</value></data>
|
||||
<data name="SchemaHierarchy_Indexes"><value>Index</value></data>
|
||||
<data name="SchemaHierarchy_InlineFunctions"><value>Fonctions incluses</value></data>
|
||||
<data name="SchemaHierarchy_Keys"><value>Clés</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServers"><value>Serveurs liés</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServerLogins"><value>Connexions de serveur lié</value></data>
|
||||
<data name="SchemaHierarchy_Logins"><value>Connexions</value></data>
|
||||
<data name="SchemaHierarchy_MasterKey"><value>Clé principale</value></data>
|
||||
<data name="SchemaHierarchy_MasterKeys"><value>Clés principales</value></data>
|
||||
<data name="SchemaHierarchy_MessageTypes"><value>Types de messages</value></data>
|
||||
<data name="SchemaHierarchy_MultiSelectFunctions"><value>Fonctions table</value></data>
|
||||
<data name="SchemaHierarchy_Parameters"><value>Paramètres</value></data>
|
||||
<data name="SchemaHierarchy_PartitionFunctions"><value>Fonctions de partition</value></data>
|
||||
<data name="SchemaHierarchy_PartitionSchemes"><value>Schémas de partition</value></data>
|
||||
<data name="SchemaHierarchy_Permissions"><value>Autorisations</value></data>
|
||||
<data name="SchemaHierarchy_PrimaryKeys"><value>Clés primaires</value></data>
|
||||
<data name="SchemaHierarchy_Programmability"><value>Programmabilité</value></data>
|
||||
<data name="SchemaHierarchy_Queues"><value>Files d'attente</value></data>
|
||||
<data name="SchemaHierarchy_RemoteServiceBindings"><value>Liaisons de service distant</value></data>
|
||||
<data name="SchemaHierarchy_ReturnedColumns"><value>Colonnes retournées</value></data>
|
||||
<data name="SchemaHierarchy_Roles"><value>Rôles</value></data>
|
||||
<data name="SchemaHierarchy_Routes"><value>Itinéraires </value></data>
|
||||
<data name="SchemaHierarchy_Rules"><value>Règles</value></data>
|
||||
<data name="SchemaHierarchy_Schemas"><value>Schémas</value></data>
|
||||
<data name="SchemaHierarchy_Security"><value>Sécurité</value></data>
|
||||
<data name="SchemaHierarchy_ServerObjects"><value>Objets serveur</value></data>
|
||||
<data name="SchemaHierarchy_Management"><value>Gestion</value></data>
|
||||
<data name="SchemaHierarchy_ServerTriggers"><value>Déclencheurs</value></data>
|
||||
<data name="SchemaHierarchy_ServiceBroker"><value>Service Broker</value></data>
|
||||
<data name="SchemaHierarchy_Services"><value>Services</value></data>
|
||||
<data name="SchemaHierarchy_Signatures"><value>Signatures</value></data>
|
||||
<data name="SchemaHierarchy_LogFiles"><value>Fichiers journaux</value></data>
|
||||
<data name="SchemaHierarchy_Statistics"><value>Statistiques</value></data>
|
||||
<data name="SchemaHierarchy_Storage"><value>Stockage</value></data>
|
||||
<data name="SchemaHierarchy_StoredProcedures"><value>Procédures stockées</value></data>
|
||||
<data name="SchemaHierarchy_SymmetricKeys"><value>Clés symétriques</value></data>
|
||||
<data name="SchemaHierarchy_Synonyms"><value>Synonymes</value></data>
|
||||
<data name="SchemaHierarchy_Tables"><value>Tables</value></data>
|
||||
<data name="SchemaHierarchy_Triggers"><value>Déclencheurs</value></data>
|
||||
<data name="SchemaHierarchy_Types"><value>Types</value></data>
|
||||
<data name="SchemaHierarchy_UniqueKeys"><value>Clés uniques</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedDataTypes"><value>Types de données définis par l'utilisateur</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTypes"><value>Types définis par l'utilisateur (CLR)</value></data>
|
||||
<data name="SchemaHierarchy_Users"><value>Utilisateurs</value></data>
|
||||
<data name="SchemaHierarchy_Views"><value>Vues</value></data>
|
||||
<data name="SchemaHierarchy_XmlIndexes"><value>Index XML</value></data>
|
||||
<data name="SchemaHierarchy_XMLSchemaCollections"><value>Collections de schémas XML</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTableTypes"><value>Types de tables définis par l'utilisateur</value></data>
|
||||
<data name="SchemaHierarchy_FilegroupFiles"><value>Fichiers</value></data>
|
||||
<data name="MissingCaption"><value>Légende manquante</value></data>
|
||||
<data name="SchemaHierarchy_BrokerPriorities"><value>Priorités de Service Broker</value></data>
|
||||
<data name="SchemaHierarchy_CryptographicProviders"><value>Fournisseurs de chiffrement</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAuditSpecifications"><value>Spécifications de l'audit de la base de données</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseEncryptionKeys"><value>Clés de chiffrement de la base de données</value></data>
|
||||
<data name="SchemaHierarchy_EventSessions"><value>Sessions d'événements</value></data>
|
||||
<data name="SchemaHierarchy_FullTextStopLists"><value>Listes de mots vides de texte intégral</value></data>
|
||||
<data name="SchemaHierarchy_ResourcePools"><value>Pools de ressources</value></data>
|
||||
<data name="SchemaHierarchy_ServerAudits"><value>Audits</value></data>
|
||||
<data name="SchemaHierarchy_ServerAuditSpecifications"><value>Spécifications de l'audit du serveur</value></data>
|
||||
<data name="SchemaHierarchy_SpatialIndexes"><value>Index spatiaux</value></data>
|
||||
<data name="SchemaHierarchy_WorkloadGroups"><value>Groupes de charges de travail</value></data>
|
||||
<data name="SchemaHierarchy_SqlFiles"><value>Fichiers SQL</value></data>
|
||||
<data name="SchemaHierarchy_ServerFunctions"><value>Fonctions du serveur</value></data>
|
||||
<data name="SchemaHierarchy_SqlType"><value>Type SQL</value></data>
|
||||
<data name="SchemaHierarchy_ServerOptions"><value>Options de serveur</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseDiagrams"><value>Schémas de base de données</value></data>
|
||||
<data name="SchemaHierarchy_SystemTables"><value>Tables système</value></data>
|
||||
<data name="SchemaHierarchy_Databases"><value>Bases de données</value></data>
|
||||
<data name="SchemaHierarchy_SystemContracts"><value>Contrats système</value></data>
|
||||
<data name="SchemaHierarchy_SystemDatabases"><value>Bases de données système</value></data>
|
||||
<data name="SchemaHierarchy_SystemMessageTypes"><value>Types de messages système</value></data>
|
||||
<data name="SchemaHierarchy_SystemQueues"><value>Files d'attente système</value></data>
|
||||
<data name="SchemaHierarchy_SystemServices"><value>Services système</value></data>
|
||||
<data name="SchemaHierarchy_SystemStoredProcedures"><value>Procédures stockées système</value></data>
|
||||
<data name="SchemaHierarchy_SystemViews"><value>Vues système</value></data>
|
||||
<data name="SchemaHierarchy_DataTierApplications"><value>Applications de la couche Données</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedStoredProcedures"><value>Procédures stockées étendues</value></data>
|
||||
<data name="SchemaHierarchy_SystemAggregateFunctions"><value>Fonctions d'agrégation</value></data>
|
||||
<data name="SchemaHierarchy_SystemApproximateNumerics"><value>Valeurs numériques approximatives</value></data>
|
||||
<data name="SchemaHierarchy_SystemBinaryStrings"><value>Chaînes binaires</value></data>
|
||||
<data name="SchemaHierarchy_SystemCharacterStrings"><value>Chaînes de caractères</value></data>
|
||||
<data name="SchemaHierarchy_SystemCLRDataTypes"><value>Types de données CLR</value></data>
|
||||
<data name="SchemaHierarchy_SystemConfigurationFunctions"><value>Fonctions de configuration</value></data>
|
||||
<data name="SchemaHierarchy_SystemCursorFunctions"><value>Fonctions du curseur</value></data>
|
||||
<data name="SchemaHierarchy_SystemDataTypes"><value>Types de données système</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTime"><value>Date et heure</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTimeFunctions"><value>Fonctions de date et d'heure</value></data>
|
||||
<data name="SchemaHierarchy_SystemExactNumerics"><value>Valeurs numériques exactes</value></data>
|
||||
<data name="SchemaHierarchy_SystemFunctions"><value>Fonctions système</value></data>
|
||||
<data name="SchemaHierarchy_SystemHierarchyIdFunctions"><value>Fonctions de l'ID de hiérarchie</value></data>
|
||||
<data name="SchemaHierarchy_SystemMathematicalFunctions"><value>Fonctions mathématiques</value></data>
|
||||
<data name="SchemaHierarchy_SystemMetadataFunctions"><value>Fonctions de métadonnées</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherDataTypes"><value>Autres types de données</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherFunctions"><value>Autres fonctions</value></data>
|
||||
<data name="SchemaHierarchy_SystemRowsetFunctions"><value>Fonctions d'ensemble de lignes</value></data>
|
||||
<data name="SchemaHierarchy_SystemSecurityFunctions"><value>Fonctions de sécurité</value></data>
|
||||
<data name="SchemaHierarchy_SystemSpatialDataTypes"><value>Types de données spatiales</value></data>
|
||||
<data name="SchemaHierarchy_SystemStringFunctions"><value>Fonctions de chaîne</value></data>
|
||||
<data name="SchemaHierarchy_SystemSystemStatisticalFunctions"><value>Fonctions statistiques système</value></data>
|
||||
<data name="SchemaHierarchy_SystemTextAndImageFunctions"><value>Fonctions de texte et d'image</value></data>
|
||||
<data name="SchemaHierarchy_SystemUnicodeCharacterStrings"><value>Chaînes de caractères Unicode</value></data>
|
||||
<data name="SchemaHierarchy_AggregateFunctions"><value>Fonctions d'agrégation</value></data>
|
||||
<data name="SchemaHierarchy_ScalarValuedFunctions"><value>Fonctions scalaires</value></data>
|
||||
<data name="SchemaHierarchy_TableValuedFunctions"><value>Fonctions table</value></data>
|
||||
<data name="SchemaHierarchy_SystemExtendedStoredProcedures"><value>Procédures stockées étendues système</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInType"><value>Types intégrés</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInServerRole"><value>Rôles serveur intégrés</value></data>
|
||||
<data name="SchemaHierarchy_UserWithPassword"><value>Utilisateur avec mot de passe</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyList"><value>Liste des propriétés de recherche</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPolicies"><value>Stratégies de sécurité</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPredicates"><value>Prédicats de sécurité</value></data>
|
||||
<data name="SchemaHierarchy_ServerRole"><value>Rôle de serveur</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyLists"><value>Listes des propriétés de recherche</value></data>
|
||||
<data name="SchemaHierarchy_ColumnStoreIndexes"><value>Index de stockage de colonnes</value></data>
|
||||
<data name="SchemaHierarchy_TableTypeIndexes"><value>Index de types de tables</value></data>
|
||||
<data name="SchemaHierarchy_SelectiveXmlIndexes"><value>Index XML sélectifs</value></data>
|
||||
<data name="SchemaHierarchy_XmlNamespaces"><value>Espaces de noms XML</value></data>
|
||||
<data name="SchemaHierarchy_XmlTypedPromotedPaths"><value>Chemins d'accès promus typés XML</value></data>
|
||||
<data name="SchemaHierarchy_SqlTypedPromotedPaths"><value>Chemins d'accès promus typés T-SQL</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseScopedCredentials"><value>Informations d'identification incluses dans l'étendue de la base de données</value></data>
|
||||
<data name="SchemaHierarchy_ExternalDataSources"><value>Sources de données externes</value></data>
|
||||
<data name="SchemaHierarchy_ExternalFileFormats"><value>Formats de fichier externes</value></data>
|
||||
<data name="SchemaHierarchy_ExternalResources"><value>Ressources externes</value></data>
|
||||
<data name="SchemaHierarchy_ExternalTables"><value>Tables externes</value></data>
|
||||
<data name="SchemaHierarchy_AlwaysEncryptedKeys"><value>Clés Always Encrypted</value></data>
|
||||
<data name="SchemaHierarchy_ColumnMasterKeys"><value>Clés principales de la colonne</value></data>
|
||||
<data name="SchemaHierarchy_ColumnEncryptionKeys"><value>Clés de chiffrement de la colonne</value></data>
|
||||
<data name="SchemaHierarchy_Server"><value>Serveur</value></data>
|
||||
<data name="ScriptingParams_ConnectionString_Property_Invalid"><value>Erreur en analysant la propriété ScriptingParams.ConnectionString.</value></data>
|
||||
<data name="ScriptingParams_FilePath_Property_Invalid"><value>Répertoire invalide spécifié pour la propriété ScriptingParams.FilePath.</value></data>
|
||||
<data name="ScriptingListObjectsCompleteParams_ConnectionString_Property_Invalid"><value>Erreur en analysant la propriété ScriptingListObjectsCompleteParams.ConnectionString.</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterLabelFormatString"><value>{0} ({1}, {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterNoDefaultLabel"><value>Pas de valeur par défaut</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputLabel"><value>Entrée</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputLabel"><value>Entrée/sortie</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputReadOnlyLabel"><value>Entrée/ReadOnly</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputReadOnlyLabel"><value>Entrée/sortie/ReadOnly</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterDefaultLabel"><value>Par défaut</value></data>
|
||||
<data name="SchemaHierarchy_NullColumn_Label"><value>Null</value></data>
|
||||
<data name="SchemaHierarchy_NotNullColumn_Label"><value>Non Null</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithType"><value>{0} ({1}, {2})</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithoutType"><value>{0} ({1})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithType"><value>{0} ({1}Calculé, {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithoutType"><value>{0} ({1}Calculé)</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithoutType"><value>{0} (Jeu de colonnes, {1})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithType"><value>{0} (Jeu de colonnes, {1}{2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithTypeAndKeyString"><value>{0} (Jeu de colonnes, {1}, {2}, {3})</value></data>
|
||||
<data name="UniqueIndex_LabelPart"><value>Unique</value></data>
|
||||
<data name="NonUniqueIndex_LabelPart"><value>Non unique</value></data>
|
||||
<data name="ClusteredIndex_LabelPart"><value>Ordonné en clusters</value></data>
|
||||
<data name="NonClusteredIndex_LabelPart"><value>Non-Clustere</value></data>
|
||||
<data name="History_LabelPart"><value>Historique</value></data>
|
||||
<data name="SystemVersioned_LabelPart"><value>System-Versioned</value></data>
|
||||
<data name="unavailable"><value>Indisponible</value></data>
|
||||
<data name="filegroup_dialog_defaultFilegroup"><value>Groupe de fichiers par défaut actuel : {0}</value></data>
|
||||
<data name="filegroup_dialog_title"><value>Nouveau groupe de fichiers pour {0}</value></data>
|
||||
<data name="filegroups_default"><value>Par défaut</value></data>
|
||||
<data name="filegroups_files"><value>Fichiers</value></data>
|
||||
<data name="filegroups_name"><value>Nom</value></data>
|
||||
<data name="filegroups_readonly"><value>Lecture seule</value></data>
|
||||
<data name="general_autogrowth"><value>Redimensionnement automatique / Taille max</value></data>
|
||||
<data name="general_builderText"><value>...</value></data>
|
||||
<data name="general_default"><value><par défaut></value></data>
|
||||
<data name="general_fileGroup"><value>Groupe de fichiers</value></data>
|
||||
<data name="general_fileName"><value>Nom logique</value></data>
|
||||
<data name="general_fileType"><value>Type de fichier</value></data>
|
||||
<data name="general_initialSize"><value>Taille initiale (Mo)</value></data>
|
||||
<data name="general_newFilegroup"><value><new filegroup></value></data>
|
||||
<data name="general_path"><value>Chemin d'accès</value></data>
|
||||
<data name="general_physicalFileName"><value>Nom de fichier </value></data>
|
||||
<data name="general_rawDevice"><value><raw device></value></data>
|
||||
<data name="general_recoveryModel_bulkLogged"><value>Bulk-logged</value></data>
|
||||
<data name="general_recoveryModel_full"><value>Full</value></data>
|
||||
<data name="general_recoveryModel_simple"><value>Simple</value></data>
|
||||
<data name="general_titleSearchOwner"><value>Sélectionner le propriétaire de base de données</value></data>
|
||||
<data name="prototype_autogrowth_disabled"><value>Aucune</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByMB"><value>Par {0} Mo, Limité à {1} Mo</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByPercent"><value>Par {0} %, Limité à {1} Mo</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByMB"><value>Par {0} Mo, Illimité</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByPercent"><value>Par {0} %, Illimité</value></data>
|
||||
<data name="prototype_autogrowth_unlimitedfilestream"><value>Illimité</value></data>
|
||||
<data name="prototype_autogrowth_limitedfilestream"><value>Limité à {0} Mo</value></data>
|
||||
<data name="prototype_db_category_automatic"><value>Automatique</value></data>
|
||||
<data name="prototype_db_category_servicebroker"><value>Service Broker</value></data>
|
||||
<data name="prototype_db_category_collation"><value>Classement</value></data>
|
||||
<data name="prototype_db_category_cursor"><value>Curseur</value></data>
|
||||
<data name="prototype_db_category_misc"><value>Divers</value></data>
|
||||
<data name="prototype_db_category_recovery"><value>Restauration</value></data>
|
||||
<data name="prototype_db_category_state"><value>État</value></data>
|
||||
<data name="prototype_db_prop_ansiNullDefault"><value>Paramètre par défaut ANSI NULL</value></data>
|
||||
<data name="prototype_db_prop_ansiNulls"><value>Valeurs ANSI NULLS activées</value></data>
|
||||
<data name="prototype_db_prop_ansiPadding"><value>Padding ANSI activé</value></data>
|
||||
<data name="prototype_db_prop_ansiWarnings"><value>ANSI Warnings activés</value></data>
|
||||
<data name="prototype_db_prop_arithabort"><value>Annulation arithmétique (Arithmetic Abort) activée</value></data>
|
||||
<data name="prototype_db_prop_autoClose"><value>Fermeture automatique</value></data>
|
||||
<data name="prototype_db_prop_autoCreateStatistics"><value>Création automatique des statistiques</value></data>
|
||||
<data name="prototype_db_prop_autoShrink"><value>Réduction automatique</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatistics"><value>Mise à jour automatique des statistiques</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatisticsAsync"><value>Mise à jour automatique des statistiques en mode asynchrone</value></data>
|
||||
<data name="prototype_db_prop_caseSensitive"><value>Sensible à la casse</value></data>
|
||||
<data name="prototype_db_prop_closeCursorOnCommit"><value>Fermeture du curseur lors de la validation activée</value></data>
|
||||
<data name="prototype_db_prop_collation"><value>Classement</value></data>
|
||||
<data name="prototype_db_prop_concatNullYieldsNull"><value>La concaténation de la valeur Null donne Null</value></data>
|
||||
<data name="prototype_db_prop_databaseCompatibilityLevel"><value>Niveau de compatibilité de la base de données</value></data>
|
||||
<data name="prototype_db_prop_databaseState"><value>État de la base de données</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor"><value>Curseur par défaut</value></data>
|
||||
<data name="prototype_db_prop_fullTextIndexing"><value>Indexation de texte intégral activée</value></data>
|
||||
<data name="prototype_db_prop_numericRoundAbort"><value>Abandon en cas d'arrondi numérique</value></data>
|
||||
<data name="prototype_db_prop_pageVerify"><value>Vérification de la page :</value></data>
|
||||
<data name="prototype_db_prop_quotedIdentifier"><value>Identificateurs entre guillemets activés</value></data>
|
||||
<data name="prototype_db_prop_readOnly"><value>Base de données en lecture seule</value></data>
|
||||
<data name="prototype_db_prop_recursiveTriggers"><value>Déclencheurs récursifs activés</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess"><value>Restreindre l'accès</value></data>
|
||||
<data name="prototype_db_prop_selectIntoBulkCopy"><value>Select Into / Bulk Copy</value></data>
|
||||
<data name="prototype_db_prop_honorBrokerPriority"><value>Priorité du service Broker respectée</value></data>
|
||||
<data name="prototype_db_prop_serviceBrokerGuid"><value>Identifant de Service Broker</value></data>
|
||||
<data name="prototype_db_prop_brokerEnabled"><value>Broker activé</value></data>
|
||||
<data name="prototype_db_prop_truncateLogOnCheckpoint"><value>Truncate Log on Checkpoint </value></data>
|
||||
<data name="prototype_db_prop_dbChaining"><value>Chaînage des propriétés des bases de données croisées activé</value></data>
|
||||
<data name="prototype_db_prop_trustworthy"><value>Digne de confiance</value></data>
|
||||
<data name="prototype_db_prop_dateCorrelationOptimization"><value>Date Correlation Optimization Enabledprototype_db_prop_parameterization = Parameterization</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_forced"><value>Forcé</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_simple"><value>Simple</value></data>
|
||||
<data name="prototype_file_dataFile"><value>Données ROWS</value></data>
|
||||
<data name="prototype_file_logFile"><value>LOG</value></data>
|
||||
<data name="prototype_file_filestreamFile"><value>Données FILESTREAM</value></data>
|
||||
<data name="prototype_file_noFileGroup"><value>Non applicable</value></data>
|
||||
<data name="prototype_file_defaultpathstring"><value><default path></value></data>
|
||||
<data name="title_openConnectionsMustBeClosed"><value>Ouvrir les connexions</value></data>
|
||||
<data name="warning_openConnectionsMustBeClosed"><value>Pour changer les propriétés de la base de données, SQL Server doit fermer toutes les autres connexions à la base de données. Etes-vous sûr de vouloir changer les propriétés et fermer toutes les autres connexions ?</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_autoClosed"><value>AUTO_CLOSED</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_emergency"><value>EMERGENCY</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_inaccessible"><value>INACCESSIBLE</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_normal"><value>NORMAL</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_offline"><value>OFFLINE</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recovering"><value>RECOVERING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recoveryPending"><value>RECOVERY PENDING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_restoring"><value>RESTORING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_shutdown"><value>SHUTDOWN</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_standby"><value>STANDBY</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_suspect"><value>SUSPECT</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_global"><value>GLOBAL</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_local"><value>LOCAL</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_multiple"><value>MULTI_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_restricted"><value>RESTRICTED_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_single"><value>SINGLE_USER</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_checksum"><value>CHECKSUM</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_none"><value>NONE</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_tornPageDetection"><value>TORN_PAGE_DETECTION</value></data>
|
||||
<data name="prototype_db_prop_varDecimalEnabled"><value>Format de stockage VarDecimal activé</value></data>
|
||||
<data name="compatibilityLevel_katmai"><value>SQL Server 2008 (100)</value></data>
|
||||
<data name="prototype_db_prop_encryptionEnabled"><value>Chiffrement activé</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_off"><value>OFF</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_on"><value>ON</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_primary"><value>PRIMARY</value></data>
|
||||
<data name="error_db_prop_invalidleadingColumns"><value>Pour la politique de distribution HASH, le nombre de colonnes hash qui débutent est optionnel mais devrait être entre 1 et 16 colonnes.</value></data>
|
||||
<data name="compatibilityLevel_denali"><value>SQL Server 2012 (110)</value></data>
|
||||
<data name="compatibilityLevel_sql14"><value>SQL Server 2014 (120)</value></data>
|
||||
<data name="compatibilityLevel_sql15"><value>SQL Server 2016 (130)</value></data>
|
||||
<data name="compatibilityLevel_sqlvNext"><value>SQL Server vNext (140)</value></data>
|
||||
<data name="general_containmentType_None"><value>Aucun</value></data>
|
||||
<data name="general_containmentType_Partial"><value>Partiel</value></data>
|
||||
<data name="filegroups_filestreamFiles"><value>Fichiers FILESTREAM</value></data>
|
||||
<data name="prototype_file_noApplicableFileGroup"><value>Aucun groupe de fichiers applicable</value></data>
|
||||
<data name="DatabaseNotAccessible"><value>La base de données {0} est inaccessible.</value></data>
|
||||
<data name="QueryServiceResultSetHasNoResults"><value>La requête n'a aucun résultat à retourner</value></data>
|
||||
<data name="QueryServiceResultSetTooLarge"><value>Le jeu de résultats a trop de lignes pour être chargé en toute sécurité</value></data>
|
||||
<data name="prototype_db_prop_parameterization"><value>Paramétrage</value></data>
|
||||
<data name="ConflictWithNoRecovery"><value>La spécification de cette option lors de la restauration d'une sauvegarde avec l'option NORECOVERY n'est pas permise.</value></data>
|
||||
<data name="InvalidPathForDatabaseFile"><value>Chemin d'accès non valide pour le fichier de base de données : « {0} »</value></data>
|
||||
<data name="Log"><value>Journal</value></data>
|
||||
<data name="RestorePlanFailed"><value>Échec de la création du plan de restauration</value></data>
|
||||
<data name="RestoreNotSupported"><value>La restauration de la base de données n'est pas supportée</value></data>
|
||||
<data name="RestoreTaskName"><value>Restaurer la base de données</value></data>
|
||||
<data name="RestoreCopyOnly"><value>(Copie seule)</value></data>
|
||||
<data name="RestoreBackupSetComponent"><value>Composant</value></data>
|
||||
<data name="RestoreBackupSetType"><value>Type</value></data>
|
||||
<data name="RestoreBackupSetServer"><value>Serveur </value></data>
|
||||
<data name="RestoreBackupSetDatabase"><value>Base de données </value></data>
|
||||
<data name="RestoreBackupSetPosition"><value>Position</value></data>
|
||||
<data name="RestoreBackupSetFirstLsn"><value>Premier NSE</value></data>
|
||||
<data name="RestoreBackupSetLastLsn"><value>Dernier NSE</value></data>
|
||||
<data name="RestoreBackupSetCheckpointLsn"><value>NSE du point de contrôle</value></data>
|
||||
<data name="RestoreBackupSetFullLsn"><value>Tous les NSE</value></data>
|
||||
<data name="RestoreBackupSetStartDate"><value>Date de début</value></data>
|
||||
<data name="RestoreBackupSetFinishDate"><value>Date de fin</value></data>
|
||||
<data name="RestoreBackupSetSize"><value>Taille</value></data>
|
||||
<data name="RestoreBackupSetUserName"><value>Nom d'utilisateur </value></data>
|
||||
<data name="RestoreBackupSetExpiration"><value>Expiration </value></data>
|
||||
<data name="RestoreBackupSetName"><value>Nom </value></data>
|
||||
<data name="TheLastBackupTaken"><value>La dernière sauvegarde effectuée ({0})</value></data>
|
||||
<data name="BackupTaskName"><value>Sauvegarder la base de données</value></data>
|
||||
<data name="TaskInProgress"><value>Opération en cours</value></data>
|
||||
<data name="TaskCompleted"><value>Terminé</value></data>
|
||||
<data name="ScriptTaskName"><value>script</value></data>
|
||||
<data name="ProfilerConnectionNotFound"><value>Connexion introuvable</value></data>
|
||||
<data name="BackupPathIsFolderError"><value>Le nom de fichier spécifié est également un nom de répertoire: {0}</value></data>
|
||||
<data name="InvalidBackupPathError"><value>Impossible de vérifier l'existence de l'emplacement du fichier de sauvegarde: {0}</value></data>
|
||||
<data name="InvalidPathError"><value>Impossible d'accéder au chemin d'accès spécifié sur le serveur: {0}</value></data>
|
||||
<data name="NoBackupsetsToRestore"><value>Aucun jeu de sauvegarde n'a été sélectionné pour être restauré.</value></data>
|
||||
<data name="NeverBackedUp"><value>Jamais</value></data>
|
||||
<data name="AzureSqlDbEdition"><value>Azure SQL DB</value></data>
|
||||
<data name="AzureSqlDwEdition"><value>Azure SQL Data Warehouse</value></data>
|
||||
<data name="AzureSqlStretchEdition"><value>Azure SQL Stretch Database</value></data>
|
||||
<data name="Error_InvalidDirectoryName"><value>Le chemin {0} n'est pas un répertoire valide.</value></data>
|
||||
<data name="Error_ExistingDirectoryName"><value> Pour le répertoire {0} un fichier avec le nom {1} existe déjà</value></data>
|
||||
<data name="EditDataValueTooLarge"><value>La valeur {0} est trop grande pour tenir dans la colonne de type {1}</value></data>
|
||||
</root>
|
||||
489
src/Microsoft.SqlTools.CoreServices/Localization/sr.it.resx
Normal file
489
src/Microsoft.SqlTools.CoreServices/Localization/sr.it.resx
Normal file
@@ -0,0 +1,489 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype"><value>text/microsoft-resx</value></resheader><resheader name="version"><value>1.3</value></resheader><resheader name="reader"><value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><resheader name="writer"><value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><data name="ConnectionServiceConnectErrorNullParams"><value>Parametri di connessione non possono essere null</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNullOwnerUri"><value>OwnerUri non può essere null o vuoto</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNotConnected"><value>SpecifiedUri: '{0}' non dispone di connessione esistente</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidAuthType"><value>Valore non valido: '{0}' per AuthenticationType. I valori validi sono 'Integrated' e 'SqlLogin'.</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidIntent"><value>Valore '{0}' non valido per ApplicationIntent. I valori validi sono 'ReadWrite' e 'ReadOnly'.</value></data>
|
||||
<data name="ConnectionServiceConnectionCanceled"><value>Connessione annullata</value></data>
|
||||
<data name="ConnectionParamsValidateNullOwnerUri"><value>OwnerUri non può essere null o vuoto</value></data>
|
||||
<data name="ConnectionParamsValidateNullConnection"><value>L'oggetto Dettagli di connessione non può essere null</value></data>
|
||||
<data name="ConnectionParamsValidateNullServerName"><value>ServerName non può essere null o vuoto</value></data>
|
||||
<data name="ConnectionParamsValidateNullSqlAuth"><value>{0} non può essere null o vuoto quando si utilizza l'autenticazione SqlLogin</value></data>
|
||||
<data name="QueryServiceCancelAlreadyCompleted"><value>La query è già stata completata e non può essere annullata</value></data>
|
||||
<data name="QueryServiceCancelDisposeFailed"><value>Query annullata correttamente, impossibile eliminare query. URI proprietario non trovato.</value></data>
|
||||
<data name="QueryServiceQueryCancelled"><value>Query annullata dall'utente</value></data>
|
||||
<data name="QueryServiceSubsetBatchNotCompleted"><value>Il batch non è ancora stato completato</value></data>
|
||||
<data name="QueryServiceSubsetBatchOutOfRange"><value>Indice di batch non può essere minore di 0 o maggiore del numero di batch</value></data>
|
||||
<data name="QueryServiceSubsetResultSetOutOfRange"><value>Indice di set di risultati non può essere minore di 0 o maggiore del numero di set di risultati</value></data>
|
||||
<data name="QueryServiceDataReaderByteCountInvalid"><value>Numero massimo di byte da restituire deve essere maggiore di zero</value></data>
|
||||
<data name="QueryServiceDataReaderCharCountInvalid"><value>Numero massimo di caratteri da restituire deve essere maggiore di zero</value></data>
|
||||
<data name="QueryServiceDataReaderXmlCountInvalid"><value>Numero massimo di byte XML da restituire deve essere maggiore di zero</value></data>
|
||||
<data name="QueryServiceFileWrapperWriteOnly"><value>Il metodo di accesso non può essere in sola scrittura</value></data>
|
||||
<data name="QueryServiceFileWrapperNotInitialized"><value>FileStreamWrapper deve essere inizializzato prima di eseguire operazioni</value></data>
|
||||
<data name="QueryServiceFileWrapperReadOnly"><value>Questo FileStreamWrapper non può essere utilizzato per la scrittura</value></data>
|
||||
<data name="QueryServiceAffectedOneRow"><value>(1 riga interessata)</value></data>
|
||||
<data name="QueryServiceAffectedRows"><value>({0} righe interessate)</value></data>
|
||||
<data name="QueryServiceCompletedSuccessfully"><value>Comandi completati correttamente.</value></data>
|
||||
<data name="QueryServiceErrorFormat"><value>Msg {0}, Livello {1}, Stato {2}, Riga {3} {4} {5}</value></data>
|
||||
<data name="QueryServiceQueryFailed"><value>Query non riuscita: {0}</value></data>
|
||||
<data name="QueryServiceColumnNull"><value>(Nessun nome di colonna)</value></data>
|
||||
<data name="QueryServiceRequestsNoQuery"><value>La query richiesta non esiste</value></data>
|
||||
<data name="QueryServiceQueryInvalidOwnerUri"><value>Questo editor non è connesso a un database</value></data>
|
||||
<data name="QueryServiceQueryInProgress"><value>Una query è già in corso per questa sessione dell'editor. Annullare la query o attendere il completamento.</value></data>
|
||||
<data name="QueryServiceMessageSenderNotSql"><value>Mittente per l'evento OnInfoMessage deve essere un oggetto SqlConnection</value></data>
|
||||
<data name="QueryServiceSaveAsResultSetNotComplete"><value>Non è possibile salvare il risultato finché non viene completata l'esecuzione della query</value></data>
|
||||
<data name="QueryServiceSaveAsMiscStartingError"><value>Errore interno durante l'avvio del task di salvataggio</value></data>
|
||||
<data name="QueryServiceSaveAsInProgress"><value>È in corso una richiesta di salvataggio sullo stesso percorso</value></data>
|
||||
<data name="QueryServiceSaveAsFail"><value>Impossibile salvare {0}: {1}</value></data>
|
||||
<data name="QueryServiceResultSetNotRead"><value>Impossibile leggere sottoinsieme a meno che i risultati sono stati letti dal server</value></data>
|
||||
<data name="QueryServiceResultSetStartRowOutOfRange"><value>Riga di inizio non può essere minore di 0 o maggiore del numero di righe nel set di risultati</value></data>
|
||||
<data name="QueryServiceResultSetRowCountOutOfRange"><value>Il numero di righe deve essere un numero intero positivo</value></data>
|
||||
<data name="QueryServiceResultSetNoColumnSchema"><value>Impossibile recuperare schema di colonne per set di risultati</value></data>
|
||||
<data name="QueryServiceExecutionPlanNotFound"><value>Impossibile recuperare un piano di esecuzione dal set di risultati</value></data>
|
||||
<data name="PeekDefinitionAzureError"><value>Questa funzionalità non è supportata su DB SQL Azure e Data Warehouse: {0}</value></data>
|
||||
<data name="PeekDefinitionError"><value>Si è verificato un errore imprevisto durante l'esecuzione di definizione Peek: {0}</value></data>
|
||||
<data name="PeekDefinitionNoResultsError"><value>Nessun risultato trovato.</value></data>
|
||||
<data name="PeekDefinitionDatabaseError"><value>Non è stato recuperato alcun oggetto di database.</value></data>
|
||||
<data name="PeekDefinitionNotConnectedError"><value>Connettersi a un server.</value></data>
|
||||
<data name="PeekDefinitionTimedoutError"><value>Timeout dell'operazione.</value></data>
|
||||
<data name="PeekDefinitionTypeNotSupportedError"><value>Questo tipo di oggetto non è supportato da questa funzionalità.</value></data>
|
||||
<data name="WorkspaceServicePositionLineOutOfRange"><value>La posizione non rientra nell'intervallo di righe del file</value></data>
|
||||
<data name="WorkspaceServicePositionColumnOutOfRange"><value>Posizione non rientra nell'intervallo di colonne per riga {0}</value></data>
|
||||
<data name="WorkspaceServiceBufferPositionOutOfOrder"><value>Posizione iniziale ({0}, {1}) deve essere precedente o uguale alla posizione finale ({2}, {3})</value></data>
|
||||
<data name="EE_BatchSqlMessageNoProcedureInfo"><value>Msg. {0}, Livello {1}, Stato {2}, Riga {3}</value></data>
|
||||
<data name="EE_BatchSqlMessageWithProcedureInfo"><value>Msg. {0}, Livello {1}, Stato {2}, Procedura {3}, Riga {4}</value></data>
|
||||
<data name="EE_BatchSqlMessageNoLineInfo"><value>Msg. {0}, Livello {1}, Stato {2}</value></data>
|
||||
<data name="EE_BatchError_Exception"><value>Si è verificato un errore durante l'elaborazione batch. Messaggio di errore: {0}</value></data>
|
||||
<data name="EE_BatchExecutionInfo_RowsAffected"><value>({0} righe interessate dall'operazione)</value></data>
|
||||
<data name="EE_ExecutionNotYetCompleteError"><value>L'esecuzione precedente non è ancora completa.</value></data>
|
||||
<data name="EE_ScriptError_Error"><value>Si è verificato un errore di scripting.</value></data>
|
||||
<data name="EE_ScriptError_ParsingSyntax"><value>Sintassi errata rilevata durante l'analisi di '{0}'.</value></data>
|
||||
<data name="EE_ScriptError_FatalError"><value>Si è verificato un errore irreversibile.</value></data>
|
||||
<data name="EE_ExecutionInfo_FinalizingLoop"><value>Esecuzione completata {0} volte...</value></data>
|
||||
<data name="EE_ExecutionInfo_QueryCancelledbyUser"><value>È stata annullata la query.</value></data>
|
||||
<data name="EE_BatchExecutionError_Halting"><value>Si è verificato un errore durante l'esecuzione del batch.</value></data>
|
||||
<data name="EE_BatchExecutionError_Ignoring"><value>Si è verificato un errore durante l'esecuzione del batch, ma l'errore è stato ignorato.</value></data>
|
||||
<data name="EE_ExecutionInfo_InitializingLoop"><value>Beginning execution loop</value></data>
|
||||
<data name="EE_ExecutionError_CommandNotSupported"><value>Il comando {0} non è supportato.</value></data>
|
||||
<data name="EE_ExecutionError_VariableNotFound"><value>Impossibile trovare la variabile {0}.</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineError"><value>Errore di esecuzione di SQL: {0}</value></data>
|
||||
<data name="BatchParserWrapperExecutionError"><value>Esecuzione del wrapper parser batch: trovati {0}... alla riga {1}: {2} Descrizione: {3}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchMessage"><value>Motore di esecuzione wrapper parser di batch, ricevuto messaggio batch: messaggio: {0} messaggio dettagliato: {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetProcessing"><value>Motore di esecuzione wrapper parser di batch, elaborazione batch di ResultSet: DataReader.FieldCount: {0} DataReader.RecordsAffected: {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetFinished"><value>Motore di esecuzione wrapper parser di batch, batch di ResultSet completato.</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchCancelling"><value>Annullamento dell'esecuzione batch del wrapper parser batch.</value></data>
|
||||
<data name="EE_ScriptError_Warning"><value>Avviso di script.</value></data>
|
||||
<data name="TroubleshootingAssistanceMessage"><value>Per ulteriori informazioni su questo errore, vedere gli argomenti sulla risoluzione dei problemi nella documentazione del prodotto.</value></data>
|
||||
<data name="BatchParser_CircularReference"><value>File '{0}' incluso ricorsivamente.</value></data>
|
||||
<data name="BatchParser_CommentNotTerminated"><value>Marker ' * /' di fine commento mancante.</value></data>
|
||||
<data name="BatchParser_StringNotTerminated"><value>Virgolette mancanti alla fine della stringa di caratteri.</value></data>
|
||||
<data name="BatchParser_IncorrectSyntax"><value>Sintassi errata rilevata durante l'analisi di '{0}'.</value></data>
|
||||
<data name="BatchParser_VariableNotDefined"><value>Variabile {0} non è definita.</value></data>
|
||||
<data name="TestLocalizationConstant"><value>test</value></data>
|
||||
<data name="ErrorEmptyStringReplacement"><value>Sostituzione di una stringa vuota con una stringa vuota.</value></data>
|
||||
<data name="EditDataSessionNotFound"><value>La sessione di editing non esiste.</value></data>
|
||||
<data name="EditDataQueryNotCompleted"><value>Esecuzione query non completata</value></data>
|
||||
<data name="EditDataQueryImproperResultSets"><value>La query non ha generato esattamente un insieme di risultati</value></data>
|
||||
<data name="EditDataFailedAddRow"><value>Errore nell'aggiunta di una riga durante l'aggiornamento della cache</value></data>
|
||||
<data name="EditDataRowOutOfRange"><value>L'ID riga specificato è fuori dal range di righe della cache della modifica</value></data>
|
||||
<data name="EditDataUpdatePending"><value>Un aggiornamento di questa riga è già in corso e dev'essere annullato prima di procedere</value></data>
|
||||
<data name="EditDataUpdateNotPending"><value>Questo ID di riga non ha aggiornamenti in corso</value></data>
|
||||
<data name="EditDataObjectMetadataNotFound"><value>Metadati della tabella o della vista non trovati</value></data>
|
||||
<data name="EditDataInvalidFormatBinary"><value>Formato non valido per una colonna binaria</value></data>
|
||||
<data name="EditDataInvalidFormatBoolean"><value>Colonne booleane devono contenere valori numerici 0 o 1, o stringhe true o false</value></data>
|
||||
<data name="EditDataCreateScriptMissingValue"><value>Il valore di cella richiesto è mancante</value></data>
|
||||
<data name="EditDataDeleteSetCell"><value>La cancellazione di questa riga è in corso, impossibile aggiornare la cella.</value></data>
|
||||
<data name="EditDataColumnIdOutOfRange"><value>L'ID della colonna dev'essere incluso nel range delle colonne della query</value></data>
|
||||
<data name="EditDataColumnCannotBeEdited"><value>Impossibile modificare la colonna</value></data>
|
||||
<data name="EditDataColumnNoKeyColumns"><value>Impossibile trovare colonne chiave</value></data>
|
||||
<data name="EditDataScriptFilePathNull"><value>Occorre fornire un nome di file di output</value></data>
|
||||
<data name="EditDataUnsupportedObjectType"><value>L'oggetto {0} del database non può essere usato per la modifica.</value></data>
|
||||
<data name="ConnectionServiceDbErrorDefaultNotConnected"><value>L'URI specificato '{0}' non ha una connessione di default</value></data>
|
||||
<data name="EditDataCommitInProgress"><value>Azione commit in corso - attenderne il completamento.</value></data>
|
||||
<data name="SqlScriptFormatterDecimalMissingPrecision"><value>Precisione o scala mancante nella colonna Decimal</value></data>
|
||||
<data name="EditDataComputedColumnPlaceholder"><value><TBD></value></data>
|
||||
<data name="QueryServiceResultSetAddNoRows"><value>Impossibile aggiungere una riga al buffer risultati - il datareader non contiene righe</value></data>
|
||||
<data name="EditDataTimeOver24Hrs"><value>I valori della colonna Time devono essere compresi tra 00:00:00.0000000 e 23:59:59.9999999</value></data>
|
||||
<data name="EditDataNullNotAllowed"><value>NULL non è consentito per questa colonna</value></data>
|
||||
<data name="EditDataSessionAlreadyExists"><value>La sessione di editing esiste già.</value></data>
|
||||
<data name="EditDataSessionNotInitialized"><value>La sessione di editing non è stata inizializzata.</value></data>
|
||||
<data name="EditDataSessionAlreadyInitialized"><value>La sessione di editing è già stata inizializzata.</value></data>
|
||||
<data name="EditDataSessionAlreadyInitializing"><value>La sessione di editing è già stata inizializzata o è in fase di inizializzazione</value></data>
|
||||
<data name="EditDataQueryFailed"><value>Esecuzione della query fallita - vedere i messaggi per ulteriori dettagli</value></data>
|
||||
<data name="EditDataFilteringNegativeLimit"><value>Il limite del risultato non può essere negativo</value></data>
|
||||
<data name="QueryServiceCellNull"><value>NULL</value></data>
|
||||
<data name="EditDataMetadataObjectNameRequired"><value>Il nome dell'oggetto è obbligatorio</value></data>
|
||||
<data name="EditDataMetadataTooManyIdentifiers"><value>Non è possibile specificare in modo esplicito il nome di un server o di un database</value></data>
|
||||
<data name="EditDataMetadataNotExtended"><value>Nessuna proprietà estesa per la tabella</value></data>
|
||||
<data name="EditDataObjectNotFound"><value>Impossibile trovare la Tabella o la Vista necessarie alla modifica</value></data>
|
||||
<data name="TreeNodeError"><value>Errore durante l'espansione dell'oggetto: {0}</value></data>
|
||||
<data name="ServerNodeConnectionError"><value>Errore durante la connessione a {0}'</value></data>
|
||||
<data name="SchemaHierarchy_Aggregates"><value>Aggregazioni</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoles"><value>Ruoli del server</value></data>
|
||||
<data name="SchemaHierarchy_ApplicationRoles"><value>Ruoli applicazione</value></data>
|
||||
<data name="SchemaHierarchy_Assemblies"><value>Assembly</value></data>
|
||||
<data name="SchemaHierarchy_AssemblyFiles"><value>File di assembly</value></data>
|
||||
<data name="SchemaHierarchy_AsymmetricKeys"><value>Chiavi asimmetriche</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAsymmetricKeys"><value>Chiavi asimmetriche</value></data>
|
||||
<data name="SchemaHierarchy_DataCompressionOptions"><value>Opzioni di compressione dati</value></data>
|
||||
<data name="SchemaHierarchy_Certificates"><value>Certificati</value></data>
|
||||
<data name="SchemaHierarchy_FileTables"><value>Tabelle file</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseCertificates"><value>Certificati</value></data>
|
||||
<data name="SchemaHierarchy_CheckConstraints"><value>Vincoli CHECK</value></data>
|
||||
<data name="SchemaHierarchy_Columns"><value>Colonne</value></data>
|
||||
<data name="SchemaHierarchy_Constraints"><value>Vincoli</value></data>
|
||||
<data name="SchemaHierarchy_Contracts"><value>Contratti</value></data>
|
||||
<data name="SchemaHierarchy_Credentials"><value>Credenziali</value></data>
|
||||
<data name="SchemaHierarchy_ErrorMessages"><value>Messaggi di errore</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoleMembership"><value>Appartenenze al ruolo del server</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseOptions"><value>Opzioni database</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseRoles"><value>Ruoli database</value></data>
|
||||
<data name="SchemaHierarchy_RoleMemberships"><value>Appartenenze a ruoli</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseTriggers"><value>Trigger database</value></data>
|
||||
<data name="SchemaHierarchy_DefaultConstraints"><value>Vincoli predefiniti</value></data>
|
||||
<data name="SchemaHierarchy_Defaults"><value>Impostazioni predefinite</value></data>
|
||||
<data name="SchemaHierarchy_Sequences"><value>Sequenze</value></data>
|
||||
<data name="SchemaHierarchy_Endpoints"><value>Endpoint</value></data>
|
||||
<data name="SchemaHierarchy_EventNotifications"><value>Notifiche degli eventi</value></data>
|
||||
<data name="SchemaHierarchy_ServerEventNotifications"><value>Notifiche degli eventi server</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedProperties"><value>Proprietà estese</value></data>
|
||||
<data name="SchemaHierarchy_FileGroups"><value>Filegroup</value></data>
|
||||
<data name="SchemaHierarchy_ForeignKeys"><value>Chiavi esterne</value></data>
|
||||
<data name="SchemaHierarchy_FullTextCatalogs"><value>Cataloghi full-text</value></data>
|
||||
<data name="SchemaHierarchy_FullTextIndexes"><value>Indici full-text</value></data>
|
||||
<data name="SchemaHierarchy_Functions"><value>Funzioni</value></data>
|
||||
<data name="SchemaHierarchy_Indexes"><value>Indici</value></data>
|
||||
<data name="SchemaHierarchy_InlineFunctions"><value>Funzioni inline</value></data>
|
||||
<data name="SchemaHierarchy_Keys"><value>Chiavi</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServers"><value>Server collegati</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServerLogins"><value>Accessi server collegato</value></data>
|
||||
<data name="SchemaHierarchy_Logins"><value>Accessi</value></data>
|
||||
<data name="SchemaHierarchy_MasterKey"><value>Chiave master</value></data>
|
||||
<data name="SchemaHierarchy_MasterKeys"><value>Chiavi master</value></data>
|
||||
<data name="SchemaHierarchy_MessageTypes"><value>Tipi di messaggio</value></data>
|
||||
<data name="SchemaHierarchy_MultiSelectFunctions"><value>Funzioni con valori di tabella</value></data>
|
||||
<data name="SchemaHierarchy_Parameters"><value>Parametri</value></data>
|
||||
<data name="SchemaHierarchy_PartitionFunctions"><value>Funzioni di partizione</value></data>
|
||||
<data name="SchemaHierarchy_PartitionSchemes"><value>Schemi di partizione</value></data>
|
||||
<data name="SchemaHierarchy_Permissions"><value>Autorizzazioni</value></data>
|
||||
<data name="SchemaHierarchy_PrimaryKeys"><value>Chiavi primarie</value></data>
|
||||
<data name="SchemaHierarchy_Programmability"><value>Programmazione</value></data>
|
||||
<data name="SchemaHierarchy_Queues"><value>Code</value></data>
|
||||
<data name="SchemaHierarchy_RemoteServiceBindings"><value>Associazioni a servizi remoti</value></data>
|
||||
<data name="SchemaHierarchy_ReturnedColumns"><value>Colonne restituite</value></data>
|
||||
<data name="SchemaHierarchy_Roles"><value>Ruoli</value></data>
|
||||
<data name="SchemaHierarchy_Routes"><value>Route</value></data>
|
||||
<data name="SchemaHierarchy_Rules"><value>Regole</value></data>
|
||||
<data name="SchemaHierarchy_Schemas"><value>Schemi</value></data>
|
||||
<data name="SchemaHierarchy_Security"><value>Sicurezza</value></data>
|
||||
<data name="SchemaHierarchy_ServerObjects"><value>Oggetti server</value></data>
|
||||
<data name="SchemaHierarchy_Management"><value>Gestione</value></data>
|
||||
<data name="SchemaHierarchy_ServerTriggers"><value>Trigger</value></data>
|
||||
<data name="SchemaHierarchy_ServiceBroker"><value>Service Broker</value></data>
|
||||
<data name="SchemaHierarchy_Services"><value>Servizi</value></data>
|
||||
<data name="SchemaHierarchy_Signatures"><value>Firme</value></data>
|
||||
<data name="SchemaHierarchy_LogFiles"><value>File di log</value></data>
|
||||
<data name="SchemaHierarchy_Statistics"><value>Statistiche</value></data>
|
||||
<data name="SchemaHierarchy_Storage"><value>Archiviazione</value></data>
|
||||
<data name="SchemaHierarchy_StoredProcedures"><value>Stored procedure</value></data>
|
||||
<data name="SchemaHierarchy_SymmetricKeys"><value>Chiavi simmetriche</value></data>
|
||||
<data name="SchemaHierarchy_Synonyms"><value>Sinonimi</value></data>
|
||||
<data name="SchemaHierarchy_Tables"><value>Tabelle</value></data>
|
||||
<data name="SchemaHierarchy_Triggers"><value>Trigger</value></data>
|
||||
<data name="SchemaHierarchy_Types"><value>Tipi</value></data>
|
||||
<data name="SchemaHierarchy_UniqueKeys"><value>Chiavi univoche</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedDataTypes"><value>Tipi di dati definiti dall'utente</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTypes"><value>Tipi definiti dall'utente (UDT) (CLR)</value></data>
|
||||
<data name="SchemaHierarchy_Users"><value>Utenti</value></data>
|
||||
<data name="SchemaHierarchy_Views"><value>Viste</value></data>
|
||||
<data name="SchemaHierarchy_XmlIndexes"><value>Indici XML</value></data>
|
||||
<data name="SchemaHierarchy_XMLSchemaCollections"><value>Raccolte XML Schema</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTableTypes"><value>Tipi di tabella definiti dall'utente</value></data>
|
||||
<data name="SchemaHierarchy_FilegroupFiles"><value>File</value></data>
|
||||
<data name="MissingCaption"><value>Didascalia mancante</value></data>
|
||||
<data name="SchemaHierarchy_BrokerPriorities"><value>Priorità di Service Broker</value></data>
|
||||
<data name="SchemaHierarchy_CryptographicProviders"><value>Provider del servizio di crittografia</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAuditSpecifications"><value>Specifiche di controllo database</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseEncryptionKeys"><value>Chiavi di crittografia database</value></data>
|
||||
<data name="SchemaHierarchy_EventSessions"><value>Sessioni eventi</value></data>
|
||||
<data name="SchemaHierarchy_FullTextStopLists"><value>Elenchi di parole non significative full-text</value></data>
|
||||
<data name="SchemaHierarchy_ResourcePools"><value>Pool di risorse</value></data>
|
||||
<data name="SchemaHierarchy_ServerAudits"><value>Controlli</value></data>
|
||||
<data name="SchemaHierarchy_ServerAuditSpecifications"><value>Specifiche controllo server</value></data>
|
||||
<data name="SchemaHierarchy_SpatialIndexes"><value>Indici spaziali</value></data>
|
||||
<data name="SchemaHierarchy_WorkloadGroups"><value>Gruppi del carico di lavoro</value></data>
|
||||
<data name="SchemaHierarchy_SqlFiles"><value>File SQL</value></data>
|
||||
<data name="SchemaHierarchy_ServerFunctions"><value>Funzioni server</value></data>
|
||||
<data name="SchemaHierarchy_SqlType"><value>Tipo SQL</value></data>
|
||||
<data name="SchemaHierarchy_ServerOptions"><value>Opzioni server</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseDiagrams"><value>Diagrammi di database</value></data>
|
||||
<data name="SchemaHierarchy_SystemTables"><value>Tabelle di sistema</value></data>
|
||||
<data name="SchemaHierarchy_Databases"><value>Database</value></data>
|
||||
<data name="SchemaHierarchy_SystemContracts"><value>Contratti di sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemDatabases"><value>Database di sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemMessageTypes"><value>Tipi di messaggi di sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemQueues"><value>Code di sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemServices"><value>Servizi di sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemStoredProcedures"><value>Stored procedure di sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemViews"><value>Viste di sistema</value></data>
|
||||
<data name="SchemaHierarchy_DataTierApplications"><value>Applicazioni livello dati</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedStoredProcedures"><value>Stored procedure estese</value></data>
|
||||
<data name="SchemaHierarchy_SystemAggregateFunctions"><value>Funzioni di aggregazione</value></data>
|
||||
<data name="SchemaHierarchy_SystemApproximateNumerics"><value>Valori numerici approssimati</value></data>
|
||||
<data name="SchemaHierarchy_SystemBinaryStrings"><value>Stringhe binarie</value></data>
|
||||
<data name="SchemaHierarchy_SystemCharacterStrings"><value>Stringhe di caratteri</value></data>
|
||||
<data name="SchemaHierarchy_SystemCLRDataTypes"><value>Tipi di dati CLR</value></data>
|
||||
<data name="SchemaHierarchy_SystemConfigurationFunctions"><value>Funzioni di configurazione</value></data>
|
||||
<data name="SchemaHierarchy_SystemCursorFunctions"><value>Funzioni per i cursori</value></data>
|
||||
<data name="SchemaHierarchy_SystemDataTypes"><value>Tipi di dati di sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTime"><value>Data e ora</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTimeFunctions"><value>Funzioni di data e ora</value></data>
|
||||
<data name="SchemaHierarchy_SystemExactNumerics"><value>Valori numerici esatti</value></data>
|
||||
<data name="SchemaHierarchy_SystemFunctions"><value>Funzioni di sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemHierarchyIdFunctions"><value>Funzioni di ID di gerarchia</value></data>
|
||||
<data name="SchemaHierarchy_SystemMathematicalFunctions"><value>Funzioni matematiche</value></data>
|
||||
<data name="SchemaHierarchy_SystemMetadataFunctions"><value>Funzioni per i metadati</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherDataTypes"><value>Altri tipi di dati</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherFunctions"><value>Altre funzioni</value></data>
|
||||
<data name="SchemaHierarchy_SystemRowsetFunctions"><value>Funzioni per i set di righe</value></data>
|
||||
<data name="SchemaHierarchy_SystemSecurityFunctions"><value>Funzioni di sicurezza</value></data>
|
||||
<data name="SchemaHierarchy_SystemSpatialDataTypes"><value>Tipi di dati spaziali</value></data>
|
||||
<data name="SchemaHierarchy_SystemStringFunctions"><value>Funzioni per i valori stringa</value></data>
|
||||
<data name="SchemaHierarchy_SystemSystemStatisticalFunctions"><value>Funzioni statistiche di sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemTextAndImageFunctions"><value>Funzioni per i valori text e image</value></data>
|
||||
<data name="SchemaHierarchy_SystemUnicodeCharacterStrings"><value>Stringhe di caratteri Unicode</value></data>
|
||||
<data name="SchemaHierarchy_AggregateFunctions"><value>Funzioni di aggregazione</value></data>
|
||||
<data name="SchemaHierarchy_ScalarValuedFunctions"><value>Funzioni a valori scalari</value></data>
|
||||
<data name="SchemaHierarchy_TableValuedFunctions"><value>Funzioni con valori di tabella</value></data>
|
||||
<data name="SchemaHierarchy_SystemExtendedStoredProcedures"><value>Stored procedure estese di sistema</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInType"><value>Tipi predefiniti</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInServerRole"><value>Ruoli del server predefiniti</value></data>
|
||||
<data name="SchemaHierarchy_UserWithPassword"><value>Utente con password</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyList"><value>Elenco delle proprietà di ricerca</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPolicies"><value>Criteri di sicurezza</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPredicates"><value>Predicati di sicurezza</value></data>
|
||||
<data name="SchemaHierarchy_ServerRole"><value>Ruolo del server</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyLists"><value>Elenchi delle proprietà di ricerca</value></data>
|
||||
<data name="SchemaHierarchy_ColumnStoreIndexes"><value>Indici dell'archivio colonne</value></data>
|
||||
<data name="SchemaHierarchy_TableTypeIndexes"><value>Indici del tipo di tabella</value></data>
|
||||
<data name="SchemaHierarchy_SelectiveXmlIndexes"><value>Indici XML selettivi</value></data>
|
||||
<data name="SchemaHierarchy_XmlNamespaces"><value>Spazi dei nomi XML</value></data>
|
||||
<data name="SchemaHierarchy_XmlTypedPromotedPaths"><value>Percorsi promossi con tipizzazione XML</value></data>
|
||||
<data name="SchemaHierarchy_SqlTypedPromotedPaths"><value>Percorsi promossi con tipizzazione T-SQL</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseScopedCredentials"><value>Credenziali con ambito database</value></data>
|
||||
<data name="SchemaHierarchy_ExternalDataSources"><value>Origini dati esterne</value></data>
|
||||
<data name="SchemaHierarchy_ExternalFileFormats"><value>Formati di file esterni</value></data>
|
||||
<data name="SchemaHierarchy_ExternalResources"><value>Risorse esterne</value></data>
|
||||
<data name="SchemaHierarchy_ExternalTables"><value>Tabelle esterne</value></data>
|
||||
<data name="SchemaHierarchy_AlwaysEncryptedKeys"><value>Chiavi Always Encrypted</value></data>
|
||||
<data name="SchemaHierarchy_ColumnMasterKeys"><value>Chiavi master della colonna</value></data>
|
||||
<data name="SchemaHierarchy_ColumnEncryptionKeys"><value>Chiavi di crittografia della colonna</value></data>
|
||||
<data name="SchemaHierarchy_Server"><value>Server</value></data>
|
||||
<data name="ScriptingParams_ConnectionString_Property_Invalid"><value>Errore durante l'analisi della proprietà ScriptingParams.ConnectionString.</value></data>
|
||||
<data name="ScriptingParams_FilePath_Property_Invalid"><value>La Directory specificata dalla proprietà ScriptingParams.FilePath non è valida.</value></data>
|
||||
<data name="ScriptingListObjectsCompleteParams_ConnectionString_Property_Invalid"><value>Errore durante l'analisi della proprietà ScriptingListObjectsCompleteParams.ConnectionString.</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterLabelFormatString"><value>{0} ({1}, {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterNoDefaultLabel"><value>Nessun valore predefinito</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputLabel"><value>Input</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputLabel"><value>Input/Output</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputReadOnlyLabel"><value>Input/ReadOnly</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputReadOnlyLabel"><value>Input/Output/ReadOnly</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterDefaultLabel"><value>Predefinito</value></data>
|
||||
<data name="SchemaHierarchy_NullColumn_Label"><value>Null</value></data>
|
||||
<data name="SchemaHierarchy_NotNullColumn_Label"><value>non Null</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithType"><value>{0} ({1}, {2})</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithoutType"><value>{0} ({1})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithType"><value>{0} ({1} calcolato, {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithoutType"><value>{0} ({1} calcolato)</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithoutType"><value>{0} (Set di colonne: {1})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithType"><value>{0} (Set di colonne: {1} {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithTypeAndKeyString"><value>{0} (Set di colonne: {1}, {2}, {3})</value></data>
|
||||
<data name="UniqueIndex_LabelPart"><value>Univoco</value></data>
|
||||
<data name="NonUniqueIndex_LabelPart"><value>Non univoco</value></data>
|
||||
<data name="ClusteredIndex_LabelPart"><value>Cluster</value></data>
|
||||
<data name="NonClusteredIndex_LabelPart"><value>Non cluster</value></data>
|
||||
<data name="History_LabelPart"><value>Cronologia</value></data>
|
||||
<data name="SystemVersioned_LabelPart"><value>Con controllo delle versioni di sistema</value></data>
|
||||
<data name="unavailable"><value>Non disponibile</value></data>
|
||||
<data name="filegroup_dialog_defaultFilegroup"><value>Filegroup predefinito corrente: {0}</value></data>
|
||||
<data name="filegroup_dialog_title"><value>Nuovo Filegroup per {0}</value></data>
|
||||
<data name="filegroups_default"><value>Predefinito</value></data>
|
||||
<data name="filegroups_files"><value>File</value></data>
|
||||
<data name="filegroups_name"><value>Nome</value></data>
|
||||
<data name="filegroups_readonly"><value> Sola lettura</value></data>
|
||||
<data name="general_autogrowth"><value>Aumento automatico / Maxsize</value></data>
|
||||
<data name="general_builderText"><value>...</value></data>
|
||||
<data name="general_default"><value><predefinito></value></data>
|
||||
<data name="general_fileGroup"><value>Filegroup</value></data>
|
||||
<data name="general_fileName"><value>Nome logico</value></data>
|
||||
<data name="general_fileType"><value>Tipo di file</value></data>
|
||||
<data name="general_initialSize"><value>Dimensioni iniziali (MB)</value></data>
|
||||
<data name="general_newFilegroup"><value><nuovo Filegroup></value></data>
|
||||
<data name="general_path"><value>Percorso</value></data>
|
||||
<data name="general_physicalFileName"><value>Nome file</value></data>
|
||||
<data name="general_rawDevice"><value><dispositivo RAW></value></data>
|
||||
<data name="general_recoveryModel_bulkLogged"><value>Registrazione delle operazioni bulk</value></data>
|
||||
<data name="general_recoveryModel_full"><value>Completo</value></data>
|
||||
<data name="general_recoveryModel_simple"><value>Semplice</value></data>
|
||||
<data name="general_titleSearchOwner"><value>Seleziona il proprietario del Database</value></data>
|
||||
<data name="prototype_autogrowth_disabled"><value>Nessuno</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByMB"><value>Di {0} MB, limitato a {1} MB</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByPercent"><value>Di {0} percento, limitato a {1} MB</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByMB"><value>Di {0} MB, illimitato</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByPercent"><value>Di {0} percento, illimitato</value></data>
|
||||
<data name="prototype_autogrowth_unlimitedfilestream"><value>Senza limiti</value></data>
|
||||
<data name="prototype_autogrowth_limitedfilestream"><value>Limitato a {0} MB</value></data>
|
||||
<data name="prototype_db_category_automatic"><value>Automatico</value></data>
|
||||
<data name="prototype_db_category_servicebroker"><value>Service Broker</value></data>
|
||||
<data name="prototype_db_category_collation"><value>Regole di confronto</value></data>
|
||||
<data name="prototype_db_category_cursor"><value>Cursore</value></data>
|
||||
<data name="prototype_db_category_misc"><value>Varie</value></data>
|
||||
<data name="prototype_db_category_recovery"><value>Recupero</value></data>
|
||||
<data name="prototype_db_category_state"><value>Stato</value></data>
|
||||
<data name="prototype_db_prop_ansiNullDefault"><value>Impostazione predefinita ANSI NULL</value></data>
|
||||
<data name="prototype_db_prop_ansiNulls"><value>ANSI NULLS abilitati</value></data>
|
||||
<data name="prototype_db_prop_ansiPadding"><value>ANSI Padding abilitato</value></data>
|
||||
<data name="prototype_db_prop_ansiWarnings"><value>Avvisi ANSI abilitati</value></data>
|
||||
<data name="prototype_db_prop_arithabort"><value>Arithmetic Abort abilitata</value></data>
|
||||
<data name="prototype_db_prop_autoClose"><value>Chiusura automatica</value></data>
|
||||
<data name="prototype_db_prop_autoCreateStatistics"><value>Creazione statistiche automatica</value></data>
|
||||
<data name="prototype_db_prop_autoShrink"><value>Compattazione automatica</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatistics"><value>Aggiornamento statistiche automatico</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatisticsAsync"><value>Aggiornamento statistiche asincrono automatico</value></data>
|
||||
<data name="prototype_db_prop_caseSensitive"><value>Distinzione maiuscole/minuscole</value></data>
|
||||
<data name="prototype_db_prop_closeCursorOnCommit"><value>Chiusura cursore in caso di commit abilitata</value></data>
|
||||
<data name="prototype_db_prop_collation"><value>Regole di confronto</value></data>
|
||||
<data name="prototype_db_prop_concatNullYieldsNull"><value>La concatenazione di valori Null restituisce valori Null</value></data>
|
||||
<data name="prototype_db_prop_databaseCompatibilityLevel"><value>Livello di compatibilità del database</value></data>
|
||||
<data name="prototype_db_prop_databaseState"><value>Stato database</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor"><value>Cursore predefinito</value></data>
|
||||
<data name="prototype_db_prop_fullTextIndexing"><value>Indicizzazione full-text</value></data>
|
||||
<data name="prototype_db_prop_numericRoundAbort"><value>Interruzione per perdita di precisione numerica</value></data>
|
||||
<data name="prototype_db_prop_pageVerify"><value>Verifica pagina</value></data>
|
||||
<data name="prototype_db_prop_quotedIdentifier"><value>Identificatori delimitati abilitati</value></data>
|
||||
<data name="prototype_db_prop_readOnly"><value>Database di sola lettura</value></data>
|
||||
<data name="prototype_db_prop_recursiveTriggers"><value>Trigger ricorsivi abilitati</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess"><value>Limitazione accesso</value></data>
|
||||
<data name="prototype_db_prop_selectIntoBulkCopy"><value>Select Into/Bulk Copy</value></data>
|
||||
<data name="prototype_db_prop_honorBrokerPriority"><value>Rispetta priorità di Service Broker</value></data>
|
||||
<data name="prototype_db_prop_serviceBrokerGuid"><value>Identificatore Service Broker</value></data>
|
||||
<data name="prototype_db_prop_brokerEnabled"><value>Broker abilitato</value></data>
|
||||
<data name="prototype_db_prop_truncateLogOnCheckpoint"><value>Tronca Log al Checkpoint </value></data>
|
||||
<data name="prototype_db_prop_dbChaining"><value>Concatenamento della proprietà tra database abilitato</value></data>
|
||||
<data name="prototype_db_prop_trustworthy"><value>Trustworthy</value></data>
|
||||
<data name="prototype_db_prop_dateCorrelationOptimization"><value>Ottimizzazione correlazione date Enabledprototype_db_prop_parameterization = parametrizzazione</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_forced"><value>Forzato</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_simple"><value>Semplice</value></data>
|
||||
<data name="prototype_file_dataFile"><value>Dati RIGHE</value></data>
|
||||
<data name="prototype_file_logFile"><value>LOG</value></data>
|
||||
<data name="prototype_file_filestreamFile"><value>Dati FILESTREAM</value></data>
|
||||
<data name="prototype_file_noFileGroup"><value>Non applicabile</value></data>
|
||||
<data name="prototype_file_defaultpathstring"><value><percorso predefinito></value></data>
|
||||
<data name="title_openConnectionsMustBeClosed"><value>Connessioni aperte</value></data>
|
||||
<data name="warning_openConnectionsMustBeClosed"><value>Per modificare le proprietà del database, SQL Server deve chiudere tutte le altre connessioni al database_ Sei sicuro di voler modificare le proprietà e chiudere tutte le altre connessioni?</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_autoClosed"><value>AUTO_CLOSED</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_emergency"><value>EMERGENCY</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_inaccessible"><value>INACCESSIBLE</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_normal"><value>NORMAL</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_offline"><value>OFFLINE</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recovering"><value>RECOVERING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recoveryPending"><value>RECOVERY PENDING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_restoring"><value>RESTORING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_shutdown"><value>SHUTDOWN</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_standby"><value>STANDBY</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_suspect"><value>SUSPECT</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_global"><value>GLOBAL</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_local"><value>LOCAL</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_multiple"><value>MULTI_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_restricted"><value>RESTRICTED_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_single"><value>SINGLE_USER</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_checksum"><value>CHECKSUM</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_none"><value>NONE</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_tornPageDetection"><value>TORN_PAGE_DETECTION</value></data>
|
||||
<data name="prototype_db_prop_varDecimalEnabled"><value>Formato di archiviazione VarDecimal abilitato</value></data>
|
||||
<data name="compatibilityLevel_katmai"><value>SQL Server 2008 (100)</value></data>
|
||||
<data name="prototype_db_prop_encryptionEnabled"><value>Crittografia abilitata</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_off"><value>OFF</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_on"><value>ON</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_primary"><value>PRIMARY</value></data>
|
||||
<data name="error_db_prop_invalidleadingColumns"><value>Per il criterio di distribuzione HASH, il numero di colonne iniziali di hash è facoltativo, ma dovrebbe essere da 1 a 16 colonne </value></data>
|
||||
<data name="compatibilityLevel_denali"><value>SQL Server 2012 (110)</value></data>
|
||||
<data name="compatibilityLevel_sql14"><value>SQL Server 2014 (120)</value></data>
|
||||
<data name="compatibilityLevel_sql15"><value>SQL Server 2016 (130)</value></data>
|
||||
<data name="compatibilityLevel_sqlvNext"><value>SQL Server vNext (140)</value></data>
|
||||
<data name="general_containmentType_None"><value>Nessuno</value></data>
|
||||
<data name="general_containmentType_Partial"><value>Parziale</value></data>
|
||||
<data name="filegroups_filestreamFiles"><value>File FILESTREAM</value></data>
|
||||
<data name="prototype_file_noApplicableFileGroup"><value>Nessun Filegroup applicabile</value></data>
|
||||
<data name="DatabaseNotAccessible"><value>Il database {0} non è accessibile.</value></data>
|
||||
<data name="QueryServiceResultSetHasNoResults"><value>La query non ha risultati da restituire</value></data>
|
||||
<data name="QueryServiceResultSetTooLarge"><value>L'insieme di risultati ha troppe righe per essere caricato in modo sicuro</value></data>
|
||||
<data name="prototype_db_prop_parameterization"><value>Parametrizzazione</value></data>
|
||||
<data name="ConflictWithNoRecovery"><value>Non è consentito specificare questa opzione quando si ripristina un backup con NORECOVERY.</value></data>
|
||||
<data name="InvalidPathForDatabaseFile"><value>Percorso non valido per il file di database: '{0}'</value></data>
|
||||
<data name="Log"><value>Log</value></data>
|
||||
<data name="RestorePlanFailed"><value>Impossibile creare un piano di ripristino.</value></data>
|
||||
<data name="RestoreNotSupported"><value>Ripristino del database non supportato.</value></data>
|
||||
<data name="RestoreTaskName"><value>Ripristina Database</value></data>
|
||||
<data name="RestoreCopyOnly"><value>(Sola Copia)</value></data>
|
||||
<data name="RestoreBackupSetComponent"><value>Componente</value></data>
|
||||
<data name="RestoreBackupSetType"><value>Tipo</value></data>
|
||||
<data name="RestoreBackupSetServer"><value>Server</value></data>
|
||||
<data name="RestoreBackupSetDatabase"><value>Database</value></data>
|
||||
<data name="RestoreBackupSetPosition"><value>Posizione</value></data>
|
||||
<data name="RestoreBackupSetFirstLsn"><value>Primo LSN</value></data>
|
||||
<data name="RestoreBackupSetLastLsn"><value>Ultimo LSN</value></data>
|
||||
<data name="RestoreBackupSetCheckpointLsn"><value>LSN di checkpoint</value></data>
|
||||
<data name="RestoreBackupSetFullLsn"><value>LSN completo</value></data>
|
||||
<data name="RestoreBackupSetStartDate"><value>Data di inizio</value></data>
|
||||
<data name="RestoreBackupSetFinishDate"><value>Data di fine</value></data>
|
||||
<data name="RestoreBackupSetSize"><value>Dimensione</value></data>
|
||||
<data name="RestoreBackupSetUserName"><value>Nome utente</value></data>
|
||||
<data name="RestoreBackupSetExpiration"><value>Scadenza</value></data>
|
||||
<data name="RestoreBackupSetName"><value>Nome</value></data>
|
||||
<data name="TheLastBackupTaken"><value>L'ultimo backup effettuato ({0})</value></data>
|
||||
<data name="BackupTaskName"><value>Backup database</value></data>
|
||||
<data name="TaskInProgress"><value>In corso</value></data>
|
||||
<data name="TaskCompleted"><value>Completato</value></data>
|
||||
<data name="ScriptTaskName"><value>scripting</value></data>
|
||||
<data name="ProfilerConnectionNotFound"><value>Connessione non trovata</value></data>
|
||||
<data name="BackupPathIsFolderError"><value>Il nome file specificato è anche un nome di cartella: {0}</value></data>
|
||||
<data name="InvalidBackupPathError"><value>Impossibile verificare l'esistenza della posizione del file di backup: {0}</value></data>
|
||||
<data name="InvalidPathError"><value>Impossibile accedere al percorso specificato sul server: {0}</value></data>
|
||||
<data name="NoBackupsetsToRestore"><value>Nessun insieme di backup selezionato per il ripristino</value></data>
|
||||
<data name="NeverBackedUp"><value>Mai</value></data>
|
||||
<data name="AzureSqlDbEdition"><value>Azure SQL DB</value></data>
|
||||
<data name="AzureSqlDwEdition"><value>Azure SQL Data Warehouse</value></data>
|
||||
<data name="AzureSqlStretchEdition"><value>Azure SQL Stretch Database</value></data>
|
||||
<data name="Error_InvalidDirectoryName"><value>Il percorso [{0}] non è una directory valida.</value></data>
|
||||
<data name="Error_ExistingDirectoryName"><value>Nella directory '{0}' esiste già il file {1}</value></data>
|
||||
<data name="EditDataValueTooLarge"><value>Il valore {0} è troppo grande per essere contenuto in una colonna di tipo {1}</value></data>
|
||||
</root>
|
||||
490
src/Microsoft.SqlTools.CoreServices/Localization/sr.ja.resx
Normal file
490
src/Microsoft.SqlTools.CoreServices/Localization/sr.ja.resx
Normal file
@@ -0,0 +1,490 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype"><value>text/microsoft-resx</value></resheader><resheader name="version"><value>1.3</value></resheader><resheader name="reader"><value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><resheader name="writer"><value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><data name="ConnectionServiceConnectErrorNullParams"><value>接続パラメーターを null にすることはできません。</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNullOwnerUri"><value>OwnerUri を null または空にすることはできません。</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNotConnected"><value>SpecifiedUri '{0}' には、既存の接続はありません。</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidAuthType"><value>AuthenticationType の値 '{0}' が無効です。有効な値は 'Integrated' または 'SqlLogin' です。</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidIntent"><value>ApplicationIntent の値 '{0}' が無効です。有効な値は 'ReadWrite' または 'ReadOnly' です。</value></data>
|
||||
<data name="ConnectionServiceConnectionCanceled"><value>接続がキャンセルされました。</value></data>
|
||||
<data name="ConnectionParamsValidateNullOwnerUri"><value>OwnerUri を null または空にすることはできません。</value></data>
|
||||
<data name="ConnectionParamsValidateNullConnection"><value>接続の詳細オブジェクトを null にすることはできません。</value></data>
|
||||
<data name="ConnectionParamsValidateNullServerName"><value>ServerName を null または空にすることはできません。</value></data>
|
||||
<data name="ConnectionParamsValidateNullSqlAuth"><value>SqlLogin 認証を使用する場合に、{0} を null または空にすることはできません。</value></data>
|
||||
<data name="QueryServiceCancelAlreadyCompleted"><value>クエリは既に完了して、取り消すことができません。</value></data>
|
||||
<data name="QueryServiceCancelDisposeFailed"><value>クエリのキャンセルに成功しましたが、クエリの処理に失敗しました。OwnerURIが見つかりません。</value></data>
|
||||
<data name="QueryServiceQueryCancelled"><value>クエリは、ユーザーによってキャンセルされました</value></data>
|
||||
<data name="QueryServiceSubsetBatchNotCompleted"><value>バッチがまだ完了していません、</value></data>
|
||||
<data name="QueryServiceSubsetBatchOutOfRange"><value>バッチのインデックスは、0 未満あるいは、バッチの数より大きい値にすることはできません。</value></data>
|
||||
<data name="QueryServiceSubsetResultSetOutOfRange"><value>結果セットのインデックスは、0 未満あるいは、結果セットの数より大きい値にすることはできません</value></data>
|
||||
<data name="QueryServiceDataReaderByteCountInvalid"><value>戻り値の最大バイト数は 0 より大きくする必要があります。</value></data>
|
||||
<data name="QueryServiceDataReaderCharCountInvalid"><value>戻り値の最大文字数は 0 より大きくする必要があります。</value></data>
|
||||
<data name="QueryServiceDataReaderXmlCountInvalid"><value>戻り値の最大のXMLバイト数は 0 より大きくする必要があります。</value></data>
|
||||
<data name="QueryServiceFileWrapperWriteOnly"><value>アクセス メソッドを書き込み専用にすることはできません。</value></data>
|
||||
<data name="QueryServiceFileWrapperNotInitialized"><value>FileStreamWrapper は、操作を実行する前に初期化されなければなりません。</value></data>
|
||||
<data name="QueryServiceFileWrapperReadOnly"><value>この FileStreamWrapper は、書き込みには利用できません。</value></data>
|
||||
<data name="QueryServiceAffectedOneRow"><value>(1 件処理されました)</value></data>
|
||||
<data name="QueryServiceAffectedRows"><value>({0} 行処理されました)</value></data>
|
||||
<data name="QueryServiceCompletedSuccessfully"><value>コマンドが正常に完了しました。</value></data>
|
||||
<data name="QueryServiceErrorFormat"><value>Msg {0}, Level {1}, State {2}, Line {3}{4}{5}</value></data>
|
||||
<data name="QueryServiceQueryFailed"><value>クエリに失敗しました: {0}</value></data>
|
||||
<data name="QueryServiceColumnNull"><value>(列名なし)</value></data>
|
||||
<data name="QueryServiceRequestsNoQuery"><value>要求されたクエリは存在しません</value></data>
|
||||
<data name="QueryServiceQueryInvalidOwnerUri"><value>このエディターは、データベースに接続されていません。</value></data>
|
||||
<data name="QueryServiceQueryInProgress"><value>このエディターのクエリは既に実行中です。クエリをキャンセルするか完了まで待って下さい。</value></data>
|
||||
<data name="QueryServiceMessageSenderNotSql"><value>OnInfoMessage イベントのSenderは、SqlConnectionである必要があります。</value></data>
|
||||
<data name="QueryServiceSaveAsResultSetNotComplete"><value>クエリの実行が完了するまで、結果を保存することはできません。</value></data>
|
||||
<data name="QueryServiceSaveAsMiscStartingError"><value>保存タスクの開始中に内部エラーが発生しました。</value></data>
|
||||
<data name="QueryServiceSaveAsInProgress"><value>同一のパスへの保存リクエストを実行中です。</value></data>
|
||||
<data name="QueryServiceSaveAsFail"><value>{0} を保存できませんでした: {1}</value></data>
|
||||
<data name="QueryServiceResultSetNotRead"><value>サーバーから結果が受信されていないため、サブセットを読み取ることができません。</value></data>
|
||||
<data name="QueryServiceResultSetStartRowOutOfRange"><value>開始行は 0 未満か、結果セット内の行数より大きい値にすることはできません。</value></data>
|
||||
<data name="QueryServiceResultSetRowCountOutOfRange"><value>行数は正の整数でなければなりません。</value></data>
|
||||
<data name="QueryServiceResultSetNoColumnSchema"><value>結果セットの列のスキーマを取得できませんでした。</value></data>
|
||||
<data name="QueryServiceExecutionPlanNotFound"><value>結果セットから実行プランを取得できませんでした。</value></data>
|
||||
<data name="PeekDefinitionAzureError"><value>この機能はAzure SQL DBとData Warehouseでは、現在サポートされていません: {0}</value></data>
|
||||
<data name="PeekDefinitionError"><value>Peek Definitionの実行中に予期しないエラーが発生しました: {0}</value></data>
|
||||
<data name="PeekDefinitionNoResultsError"><value>結果は見つかりませんでした。</value></data>
|
||||
<data name="PeekDefinitionDatabaseError"><value>データベース オブジェクトを取得できませんでした。</value></data>
|
||||
<data name="PeekDefinitionNotConnectedError"><value>サーバーに接続してください。</value></data>
|
||||
<data name="PeekDefinitionTimedoutError"><value>操作がタイムアウトになりました。</value></data>
|
||||
<data name="PeekDefinitionTypeNotSupportedError"><value>このオブジェクトの種類は現在この機能ではサポートされていません。</value></data>
|
||||
<data name="WorkspaceServicePositionLineOutOfRange"><value>位置がファイルの行の範囲外です。</value></data>
|
||||
<data name="WorkspaceServicePositionColumnOutOfRange"><value>位置が行 {0} の列の範囲外です。</value></data>
|
||||
<data name="WorkspaceServiceBufferPositionOutOfOrder"><value>開始位置 ({0}, {1}) は、終了位置 ({2}, {3}) より前、または同じでなければなりません。</value></data>
|
||||
<data name="EE_BatchSqlMessageNoProcedureInfo"><value>Msg {0}, Level {1}, State {2}, Line {3}</value></data>
|
||||
<data name="EE_BatchSqlMessageWithProcedureInfo"><value>Msg {0}, Level {1}, State {2}, Procedure {3}, Line {4}</value></data>
|
||||
<data name="EE_BatchSqlMessageNoLineInfo"><value>Msg {0}, Level {1}, State {2}</value></data>
|
||||
<data name="EE_BatchError_Exception"><value>バッチを処理中にエラーが発生しました。エラー メッセージ: {0}</value></data>
|
||||
<data name="EE_BatchExecutionInfo_RowsAffected"><value>({0} 件処理されました)</value></data>
|
||||
<data name="EE_ExecutionNotYetCompleteError"><value>前回の実行がまだ完了していません。</value></data>
|
||||
<data name="EE_ScriptError_Error"><value>スクリプト エラーが発生しました。</value></data>
|
||||
<data name="EE_ScriptError_ParsingSyntax"><value>{0} の解析中に不正な構文が見つかりました。</value></data>
|
||||
<data name="EE_ScriptError_FatalError"><value>致命的なエラーが発生しました。</value></data>
|
||||
<data name="EE_ExecutionInfo_FinalizingLoop"><value>実行を {0} 回完了しました...</value></data>
|
||||
<data name="EE_ExecutionInfo_QueryCancelledbyUser"><value>クエリをキャンセルしました。</value></data>
|
||||
<data name="EE_BatchExecutionError_Halting"><value>バッチの実行中にエラーが発生しました。</value></data>
|
||||
<data name="EE_BatchExecutionError_Ignoring"><value>バッチの実行中にエラーが発生しましたが、エラーを無視しました。</value></data>
|
||||
<data name="EE_ExecutionInfo_InitializingLoop"><value>Beginning execution loop</value></data>
|
||||
<data name="EE_ExecutionError_CommandNotSupported"><value>コマンド {0} はサポートされていません。</value></data>
|
||||
<data name="EE_ExecutionError_VariableNotFound"><value>変数 {0} が見つかりませんでした。</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineError"><value>SQL の実行エラー: {0}</value></data>
|
||||
<data name="BatchParserWrapperExecutionError"><value>バッチ パーサー ラッパーの実行: 行 {1}: {2} で {0} を検出... 説明: {3}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchMessage"><value>バッチ パーサー ラッパー実行エンジンのバッチ メッセージを受信しました: メッセージ: {0} 詳細メッセージ: {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetProcessing"><value>バッチ パーサー ラッパー実行エンジンのバッチ ResultSet 処理: DataReader.FieldCount: {0} DataReader.RecordsAffected: {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetFinished"><value>バッチ パーサー ラッパー実行エンジンのバッチ ResultSet が終了しました。</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchCancelling"><value>バッチ パーサー ラッパーのバッチ実行をキャンセルしています。</value></data>
|
||||
<data name="EE_ScriptError_Warning"><value>スクリプトの警告。</value></data>
|
||||
<data name="TroubleshootingAssistanceMessage"><value>このエラーの詳細については、製品ドキュメントのトラブルシューティングに関するトピックを参照してください。</value></data>
|
||||
<data name="BatchParser_CircularReference"><value>ファイル '{0}' が再帰的に含まれています。</value></data>
|
||||
<data name="BatchParser_CommentNotTerminated"><value>'*/' でマークされたコメントの終端がありません。</value></data>
|
||||
<data name="BatchParser_StringNotTerminated"><value>文字列の引用符が閉じていません。</value></data>
|
||||
<data name="BatchParser_IncorrectSyntax"><value>'{0}' の解析中に無効な構文が見つかりました。</value></data>
|
||||
<data name="BatchParser_VariableNotDefined"><value>変数 {0} が定義されていません。</value></data>
|
||||
<data name="TestLocalizationConstant"><value>テスト</value></data>
|
||||
<data name="ErrorEmptyStringReplacement"><value>空の文字列で空の文字列を置換しています。</value></data>
|
||||
<data name="EditDataSessionNotFound"><value>編集セッションは存在しません。</value></data>
|
||||
<data name="EditDataQueryNotCompleted"><value>クエリの実行が完了していません。</value></data>
|
||||
<data name="EditDataQueryImproperResultSets"><value>クエリは 1 つの結果セットを生成できませんでした。</value></data>
|
||||
<data name="EditDataFailedAddRow"><value>キャッシュを更新する新しい行を追加できませんでした。</value></data>
|
||||
<data name="EditDataRowOutOfRange"><value>与えられた行IDは、編集キャッシュに存在する行の範囲外です。</value></data>
|
||||
<data name="EditDataUpdatePending"><value>この行に対する更新がすでに保留されています。まず更新を戻す必要があります。</value></data>
|
||||
<data name="EditDataUpdateNotPending"><value>与えられた行IDには保留中の更新はありません。</value></data>
|
||||
<data name="EditDataObjectMetadataNotFound"><value>テーブルまたはビューのメタデータが見つかりませんでした。</value></data>
|
||||
<data name="EditDataInvalidFormatBinary"><value>バイナリ列の形式が無効です。</value></data>
|
||||
<data name="EditDataInvalidFormatBoolean"><value>ブール列の型は1もしくは0の数値、または true もしくは false の文字列でなければいけません。</value></data>
|
||||
<data name="EditDataCreateScriptMissingValue"><value>必須なセルの値が入力されていません。</value></data>
|
||||
<data name="EditDataDeleteSetCell"><value>この行の削除が保留中であるため、セルの更新は適用できません。</value></data>
|
||||
<data name="EditDataColumnIdOutOfRange"><value>列 ID がクエリの列の範囲である必要があります。</value></data>
|
||||
<data name="EditDataColumnCannotBeEdited"><value>列を編集できません。</value></data>
|
||||
<data name="EditDataColumnNoKeyColumns"><value>キー列が見つかりませんでした。</value></data>
|
||||
<data name="EditDataScriptFilePathNull"><value>出力ファイル名を指定する必要があります。</value></data>
|
||||
<data name="EditDataUnsupportedObjectType"><value>データベース オブジェクト {0} は、編集のため使用できません。</value></data>
|
||||
<data name="ConnectionServiceDbErrorDefaultNotConnected"><value>指定された URI '{0}' には既定の接続はありません。</value></data>
|
||||
<data name="EditDataCommitInProgress"><value>コミット処理は実行中です。完了するまで待機してください。</value></data>
|
||||
<data name="SqlScriptFormatterDecimalMissingPrecision"><value>Decimal 型の列に有効桁数もしくは小数点以下桁数のどちらかが存在していません。</value></data>
|
||||
<data name="EditDataComputedColumnPlaceholder"><value><TBD></value></data>
|
||||
<data name="QueryServiceResultSetAddNoRows"><value>結果バッファーへ行を追加できません。データリーダーは行を含んでいません。</value></data>
|
||||
<data name="EditDataTimeOver24Hrs"><value>time 型の値は 00:00:00.0000000 と 23:59:59.9999999 の範囲内になければなりません。</value></data>
|
||||
<data name="EditDataNullNotAllowed"><value>この列では NULL は許可されていません。</value></data>
|
||||
<data name="EditDataSessionAlreadyExists"><value>編集セッションがすでに存在します。</value></data>
|
||||
<data name="EditDataSessionNotInitialized"><value>編集セッションが初期化されていません。</value></data>
|
||||
<data name="EditDataSessionAlreadyInitialized"><value>編集セッションはすでに初期化されました。</value></data>
|
||||
<data name="EditDataSessionAlreadyInitializing"><value>編集セッションはすでに初期化されたか、初期化中です。</value></data>
|
||||
<data name="EditDataQueryFailed"><value>クエリーの実行が失敗しました。詳細メッセージを確認してください。</value></data>
|
||||
<data name="EditDataFilteringNegativeLimit"><value>結果の上限は負の値にできません。</value></data>
|
||||
<data name="QueryServiceCellNull"><value>NULL</value></data>
|
||||
<data name="EditDataMetadataObjectNameRequired"><value>オブジェクトの名前を指定する必要があります。</value></data>
|
||||
<data name="EditDataMetadataTooManyIdentifiers"><value>明示的なサーバーもしくはデータベースの指定はサポートされていません。</value></data>
|
||||
<data name="EditDataMetadataNotExtended"><value>テーブルメタデータは拡張プロパティを持っていません。</value></data>
|
||||
<data name="EditDataObjectNotFound"><value>編集を要求したテーブルもしくはビューが見つかりませんでした。</value></data>
|
||||
<data name="TreeNodeError"><value>'{0}' の拡張中にエラーが発生しました。</value></data>
|
||||
<data name="ServerNodeConnectionError"><value>{0} への接続中にエラーが発生しました</value></data>
|
||||
<data name="SchemaHierarchy_Aggregates"><value>集約</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoles"><value>サーバー ロール</value></data>
|
||||
<data name="SchemaHierarchy_ApplicationRoles"><value>アプリケーション ロール</value></data>
|
||||
<data name="SchemaHierarchy_Assemblies"><value>アセンブリ</value></data>
|
||||
<data name="SchemaHierarchy_AssemblyFiles"><value>アセンブリ ファイル</value></data>
|
||||
<data name="SchemaHierarchy_AsymmetricKeys"><value>非対称キー</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAsymmetricKeys"><value>非対称キー</value></data>
|
||||
<data name="SchemaHierarchy_DataCompressionOptions"><value>データ圧縮オプション</value></data>
|
||||
<data name="SchemaHierarchy_Certificates"><value>証明書</value></data>
|
||||
<data name="SchemaHierarchy_FileTables"><value>ファイルテーブル</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseCertificates"><value>証明書</value></data>
|
||||
<data name="SchemaHierarchy_CheckConstraints"><value>CHECK 制約</value></data>
|
||||
<data name="SchemaHierarchy_Columns"><value>列</value></data>
|
||||
<data name="SchemaHierarchy_Constraints"><value>制約</value></data>
|
||||
<data name="SchemaHierarchy_Contracts"><value>コントラクト</value></data>
|
||||
<data name="SchemaHierarchy_Credentials"><value>資格情報</value></data>
|
||||
<data name="SchemaHierarchy_ErrorMessages"><value>エラー メッセージ</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoleMembership"><value>サーバー ロール メンバーシップ</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseOptions"><value>データベース オプション</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseRoles"><value>データベース ロール</value></data>
|
||||
<data name="SchemaHierarchy_RoleMemberships"><value>ロール メンバーシップ</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseTriggers"><value>データベース トリガー</value></data>
|
||||
<data name="SchemaHierarchy_DefaultConstraints"><value>既定の制約</value></data>
|
||||
<data name="SchemaHierarchy_Defaults"><value>既定値</value></data>
|
||||
<data name="SchemaHierarchy_Sequences"><value>シーケンス</value></data>
|
||||
<data name="SchemaHierarchy_Endpoints"><value>エンドポイント</value></data>
|
||||
<data name="SchemaHierarchy_EventNotifications"><value>イベント通知</value></data>
|
||||
<data name="SchemaHierarchy_ServerEventNotifications"><value>サーバー イベント通知</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedProperties"><value>拡張プロパティ</value></data>
|
||||
<data name="SchemaHierarchy_FileGroups"><value>ファイル グループ</value></data>
|
||||
<data name="SchemaHierarchy_ForeignKeys"><value>外部キー</value></data>
|
||||
<data name="SchemaHierarchy_FullTextCatalogs"><value>フルテキスト カタログ</value></data>
|
||||
<data name="SchemaHierarchy_FullTextIndexes"><value>フルテキスト インデックス</value></data>
|
||||
<data name="SchemaHierarchy_Functions"><value>関数</value></data>
|
||||
<data name="SchemaHierarchy_Indexes"><value>インデックス</value></data>
|
||||
<data name="SchemaHierarchy_InlineFunctions"><value>インライン関数</value></data>
|
||||
<data name="SchemaHierarchy_Keys"><value>キー</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServers"><value>リンク サーバー</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServerLogins"><value>リンク サーバー ログイン</value></data>
|
||||
<data name="SchemaHierarchy_Logins"><value>ログイン</value></data>
|
||||
<data name="SchemaHierarchy_MasterKey"><value>マスター キー</value></data>
|
||||
<data name="SchemaHierarchy_MasterKeys"><value>マスター キー</value></data>
|
||||
<data name="SchemaHierarchy_MessageTypes"><value>メッセージ型</value></data>
|
||||
<data name="SchemaHierarchy_MultiSelectFunctions"><value>テーブル値関数</value></data>
|
||||
<data name="SchemaHierarchy_Parameters"><value>パラメーター</value></data>
|
||||
<data name="SchemaHierarchy_PartitionFunctions"><value>パーティション関数</value></data>
|
||||
<data name="SchemaHierarchy_PartitionSchemes"><value>パーティション構成</value></data>
|
||||
<data name="SchemaHierarchy_Permissions"><value>アクセス許可</value></data>
|
||||
<data name="SchemaHierarchy_PrimaryKeys"><value>主キー</value></data>
|
||||
<data name="SchemaHierarchy_Programmability"><value>プログラミング</value></data>
|
||||
<data name="SchemaHierarchy_Queues"><value>キュー</value></data>
|
||||
<data name="SchemaHierarchy_RemoteServiceBindings"><value>リモート サービスのバインド</value></data>
|
||||
<data name="SchemaHierarchy_ReturnedColumns"><value>返された列</value></data>
|
||||
<data name="SchemaHierarchy_Roles"><value>ロール</value></data>
|
||||
<data name="SchemaHierarchy_Routes"><value>ルート</value></data>
|
||||
<data name="SchemaHierarchy_Rules"><value>ルール</value></data>
|
||||
<data name="SchemaHierarchy_Schemas"><value>スキーマ</value></data>
|
||||
<data name="SchemaHierarchy_Security"><value>セキュリティ</value></data>
|
||||
<data name="SchemaHierarchy_ServerObjects"><value>サーバー オブジェクト</value></data>
|
||||
<data name="SchemaHierarchy_Management"><value>管理</value></data>
|
||||
<data name="SchemaHierarchy_ServerTriggers"><value>トリガー</value></data>
|
||||
<data name="SchemaHierarchy_ServiceBroker"><value>Service Broker</value></data>
|
||||
<data name="SchemaHierarchy_Services"><value>サービス</value></data>
|
||||
<data name="SchemaHierarchy_Signatures"><value>署名</value></data>
|
||||
<data name="SchemaHierarchy_LogFiles"><value>ログ ファイル</value></data>
|
||||
<data name="SchemaHierarchy_Statistics"><value>統計</value></data>
|
||||
<data name="SchemaHierarchy_Storage"><value>ストレージ</value></data>
|
||||
<data name="SchemaHierarchy_StoredProcedures"><value>ストアド プロシージャ</value></data>
|
||||
<data name="SchemaHierarchy_SymmetricKeys"><value>対称キー</value></data>
|
||||
<data name="SchemaHierarchy_Synonyms"><value>シノニム</value></data>
|
||||
<data name="SchemaHierarchy_Tables"><value>テーブル</value></data>
|
||||
<data name="SchemaHierarchy_Triggers"><value>トリガー</value></data>
|
||||
<data name="SchemaHierarchy_Types"><value>型</value></data>
|
||||
<data name="SchemaHierarchy_UniqueKeys"><value>一意キー</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedDataTypes"><value>ユーザー定義データ型</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTypes"><value>ユーザー定義型 (CLR)</value></data>
|
||||
<data name="SchemaHierarchy_Users"><value>ユーザー</value></data>
|
||||
<data name="SchemaHierarchy_Views"><value>ビュー</value></data>
|
||||
<data name="SchemaHierarchy_XmlIndexes"><value>XML インデックス</value></data>
|
||||
<data name="SchemaHierarchy_XMLSchemaCollections"><value>XML スキーマ コレクション</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTableTypes"><value>ユーザー定義テーブル型</value></data>
|
||||
<data name="SchemaHierarchy_FilegroupFiles"><value>ファイル</value></data>
|
||||
<data name="MissingCaption"><value>キャプションが見つかりません</value></data>
|
||||
<data name="SchemaHierarchy_BrokerPriorities"><value>Broker の優先度</value></data>
|
||||
<data name="SchemaHierarchy_CryptographicProviders"><value>暗号化プロバイダー</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAuditSpecifications"><value>データベース監査の仕様</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseEncryptionKeys"><value>データベース暗号化キー</value></data>
|
||||
<data name="SchemaHierarchy_EventSessions"><value>イベント セッション</value></data>
|
||||
<data name="SchemaHierarchy_FullTextStopLists"><value>フルテキスト ストップリスト</value></data>
|
||||
<data name="SchemaHierarchy_ResourcePools"><value>リソース プール</value></data>
|
||||
<data name="SchemaHierarchy_ServerAudits"><value>監査</value></data>
|
||||
<data name="SchemaHierarchy_ServerAuditSpecifications"><value>サーバー監査の仕様</value></data>
|
||||
<data name="SchemaHierarchy_SpatialIndexes"><value>空間インデックス</value></data>
|
||||
<data name="SchemaHierarchy_WorkloadGroups"><value>ワークロード グループ</value></data>
|
||||
<data name="SchemaHierarchy_SqlFiles"><value>SQL ファイル</value></data>
|
||||
<data name="SchemaHierarchy_ServerFunctions"><value>サーバー関数</value></data>
|
||||
<data name="SchemaHierarchy_SqlType"><value>SQL 型</value></data>
|
||||
<data name="SchemaHierarchy_ServerOptions"><value>サーバー オプション</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseDiagrams"><value>データベース ダイアグラム</value></data>
|
||||
<data name="SchemaHierarchy_SystemTables"><value>システム テーブル</value></data>
|
||||
<data name="SchemaHierarchy_Databases"><value>データベース</value></data>
|
||||
<data name="SchemaHierarchy_SystemContracts"><value>システム コントラクト</value></data>
|
||||
<data name="SchemaHierarchy_SystemDatabases"><value>システム データベース</value></data>
|
||||
<data name="SchemaHierarchy_SystemMessageTypes"><value>システム メッセージの種類</value></data>
|
||||
<data name="SchemaHierarchy_SystemQueues"><value>システム キュー</value></data>
|
||||
<data name="SchemaHierarchy_SystemServices"><value>システム サービス</value></data>
|
||||
<data name="SchemaHierarchy_SystemStoredProcedures"><value>システム ストアド プロシージャ</value></data>
|
||||
<data name="SchemaHierarchy_SystemViews"><value>システム ビュー</value></data>
|
||||
<data name="SchemaHierarchy_DataTierApplications"><value>データ層アプリケーション</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedStoredProcedures"><value>拡張ストアド プロシージャ</value></data>
|
||||
<data name="SchemaHierarchy_SystemAggregateFunctions"><value>集計関数</value></data>
|
||||
<data name="SchemaHierarchy_SystemApproximateNumerics"><value>概数</value></data>
|
||||
<data name="SchemaHierarchy_SystemBinaryStrings"><value>バイナリ文字列</value></data>
|
||||
<data name="SchemaHierarchy_SystemCharacterStrings"><value>文字列</value></data>
|
||||
<data name="SchemaHierarchy_SystemCLRDataTypes"><value>CLR データ型</value></data>
|
||||
<data name="SchemaHierarchy_SystemConfigurationFunctions"><value>構成関数</value></data>
|
||||
<data name="SchemaHierarchy_SystemCursorFunctions"><value>カーソル関数</value></data>
|
||||
<data name="SchemaHierarchy_SystemDataTypes"><value>システム データ型</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTime"><value>日付と時刻</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTimeFunctions"><value>日付と時刻関数</value></data>
|
||||
<data name="SchemaHierarchy_SystemExactNumerics"><value>真数</value></data>
|
||||
<data name="SchemaHierarchy_SystemFunctions"><value>システム関数</value></data>
|
||||
<data name="SchemaHierarchy_SystemHierarchyIdFunctions"><value>階層 ID 関数</value></data>
|
||||
<data name="SchemaHierarchy_SystemMathematicalFunctions"><value>数学関数</value></data>
|
||||
<data name="SchemaHierarchy_SystemMetadataFunctions"><value>メタデータ関数</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherDataTypes"><value>その他のデータ型</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherFunctions"><value>その他の関数</value></data>
|
||||
<data name="SchemaHierarchy_SystemRowsetFunctions"><value>行セット関数</value></data>
|
||||
<data name="SchemaHierarchy_SystemSecurityFunctions"><value>セキュリティ関数</value></data>
|
||||
<data name="SchemaHierarchy_SystemSpatialDataTypes"><value>空間データ型</value></data>
|
||||
<data name="SchemaHierarchy_SystemStringFunctions"><value>文字列関数</value></data>
|
||||
<data name="SchemaHierarchy_SystemSystemStatisticalFunctions"><value>システム統計関数</value></data>
|
||||
<data name="SchemaHierarchy_SystemTextAndImageFunctions"><value>テキストとイメージ関数</value></data>
|
||||
<data name="SchemaHierarchy_SystemUnicodeCharacterStrings"><value>Unicode 文字列</value></data>
|
||||
<data name="SchemaHierarchy_AggregateFunctions"><value>集計関数</value></data>
|
||||
<data name="SchemaHierarchy_ScalarValuedFunctions"><value>スカラー値関数</value></data>
|
||||
<data name="SchemaHierarchy_TableValuedFunctions"><value>テーブル値関数</value></data>
|
||||
<data name="SchemaHierarchy_SystemExtendedStoredProcedures"><value>システム拡張ストアド プロシージャ</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInType"><value>ビルトイン型</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInServerRole"><value>組み込みのサーバー ロール</value></data>
|
||||
<data name="SchemaHierarchy_UserWithPassword"><value>ユーザーとパスワード</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyList"><value>検索プロパティ リスト</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPolicies"><value>セキュリティ ポリシー</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPredicates"><value>セキュリティ述語</value></data>
|
||||
<data name="SchemaHierarchy_ServerRole"><value>サーバー ロール</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyLists"><value>検索プロパティ リスト</value></data>
|
||||
<data name="SchemaHierarchy_ColumnStoreIndexes"><value>列のストア インデックス</value></data>
|
||||
<data name="SchemaHierarchy_TableTypeIndexes"><value>テーブル型インデックス</value></data>
|
||||
<data name="SchemaHierarchy_SelectiveXmlIndexes"><value>選択的 XML インデックス</value></data>
|
||||
<data name="SchemaHierarchy_XmlNamespaces"><value>XML 名前空間</value></data>
|
||||
<data name="SchemaHierarchy_XmlTypedPromotedPaths"><value>XML の型指定された昇格パス</value></data>
|
||||
<data name="SchemaHierarchy_SqlTypedPromotedPaths"><value>T-SQL の型指定された昇格パス</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseScopedCredentials"><value>データベース スコープ資格情報</value></data>
|
||||
<data name="SchemaHierarchy_ExternalDataSources"><value>外部データ ソース</value></data>
|
||||
<data name="SchemaHierarchy_ExternalFileFormats"><value>外部ファイル形式</value></data>
|
||||
<data name="SchemaHierarchy_ExternalResources"><value>外部リソース</value></data>
|
||||
<data name="SchemaHierarchy_ExternalTables"><value>外部テーブル</value></data>
|
||||
<data name="SchemaHierarchy_AlwaysEncryptedKeys"><value>Always Encrypted キー</value></data>
|
||||
<data name="SchemaHierarchy_ColumnMasterKeys"><value>列マスター キー</value></data>
|
||||
<data name="SchemaHierarchy_ColumnEncryptionKeys"><value>列暗号化キー</value></data>
|
||||
<data name="SchemaHierarchy_Server"><value>サーバー</value></data>
|
||||
<data name="ScriptingParams_ConnectionString_Property_Invalid"><value>ScriptingParams.ConnectionString プロパティの解析エラーです。</value></data>
|
||||
<data name="ScriptingParams_FilePath_Property_Invalid"><value>ScriptingParams.FilePath プロパティで指定されたディレクトリが無効です。</value></data>
|
||||
<data name="ScriptingListObjectsCompleteParams_ConnectionString_Property_Invalid"><value>ScriptingListObjectsCompleteParams.ConnectionString プロパティの解析エラーです。</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterLabelFormatString"><value>{0} ({1}、{2}、{3})</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterNoDefaultLabel"><value>既定値以外</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputLabel"><value>入力</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputLabel"><value>入力/出力</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputReadOnlyLabel"><value>入力/読み取り専用</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputReadOnlyLabel"><value>入力/出力/読み取り専用</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterDefaultLabel"><value>既定値</value></data>
|
||||
<data name="SchemaHierarchy_NullColumn_Label"><value>NULL</value></data>
|
||||
<data name="SchemaHierarchy_NotNullColumn_Label"><value>NULL 以外</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithType"><value>{0} ({1}、{2})</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithoutType"><value>{0} ({1})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithType"><value>{0} ({1} 計算値、{2}、{3})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithoutType"><value>{0} ({1} 計算値)</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithoutType"><value>{0} (列セット、{1})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithType"><value>{0} (列セット、{1}{2}、{3})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithTypeAndKeyString"><value>{0} (列セット、{1}、{2}、{3})</value></data>
|
||||
<data name="UniqueIndex_LabelPart"><value>一意</value></data>
|
||||
<data name="NonUniqueIndex_LabelPart"><value>一意でない</value></data>
|
||||
<data name="ClusteredIndex_LabelPart"><value>クラスター化</value></data>
|
||||
<data name="NonClusteredIndex_LabelPart"><value>非クラスター</value></data>
|
||||
<data name="History_LabelPart"><value>履歴</value></data>
|
||||
<data name="SystemVersioned_LabelPart"><value>システムバージョン管理</value></data>
|
||||
<data name="unavailable"><value>使用不可</value></data>
|
||||
<data name="filegroup_dialog_defaultFilegroup"><value>現在の既定のファイル グループ: {0}</value></data>
|
||||
<data name="filegroup_dialog_title"><value>新しいファイルグループ {0}</value></data>
|
||||
<data name="filegroups_default"><value>既定値</value></data>
|
||||
<data name="filegroups_files"><value>ファイル</value></data>
|
||||
<data name="filegroups_name"><value>名前</value></data>
|
||||
<data name="filegroups_readonly"><value>読み取り専用</value></data>
|
||||
<data name="general_autogrowth"><value>自動拡張 / 最大容量</value></data>
|
||||
<data name="general_builderText"><value>...</value></data>
|
||||
<data name="general_default"><value><既定></value></data>
|
||||
<data name="general_fileGroup"><value>ファイル グループ</value></data>
|
||||
<data name="general_fileName"><value>論理名</value></data>
|
||||
<data name="general_fileType"><value>ファイルタイプ</value></data>
|
||||
<data name="general_initialSize"><value>初期サイズ (MB)</value></data>
|
||||
<data name="general_newFilegroup"><value><新しいファイルグループ></value></data>
|
||||
<data name="general_path"><value>パス</value></data>
|
||||
<data name="general_physicalFileName"><value>ファイル名</value></data>
|
||||
<data name="general_rawDevice"><value><RAWデバイス></value></data>
|
||||
<data name="general_recoveryModel_bulkLogged"><value>一括ログ</value></data>
|
||||
<data name="general_recoveryModel_full"><value>完全</value></data>
|
||||
<data name="general_recoveryModel_simple"><value>単純</value></data>
|
||||
<data name="general_titleSearchOwner"><value>データベース 所有者の選択</value></data>
|
||||
<data name="prototype_autogrowth_disabled"><value>なし</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByMB"><value>{0} MBごと、{1} MBを上限</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByPercent"><value>{0} パーセントごと、{1} MBまで</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByMB"><value>{0} MBごと、無制限</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByPercent"><value>{0} パーセントごと、無制限</value></data>
|
||||
<data name="prototype_autogrowth_unlimitedfilestream"><value>無制限</value></data>
|
||||
<data name="prototype_autogrowth_limitedfilestream"><value>{0} MBまで</value></data>
|
||||
<data name="prototype_db_category_automatic"><value>自動</value></data>
|
||||
<data name="prototype_db_category_servicebroker"><value>Service Broker</value></data>
|
||||
<data name="prototype_db_category_collation"><value>照合順序</value></data>
|
||||
<data name="prototype_db_category_cursor"><value>カーソル</value></data>
|
||||
<data name="prototype_db_category_misc"><value>その他</value></data>
|
||||
<data name="prototype_db_category_recovery"><value>復旧</value></data>
|
||||
<data name="prototype_db_category_state"><value>状態</value></data>
|
||||
<data name="prototype_db_prop_ansiNullDefault"><value>ANSI NULL 既定値</value></data>
|
||||
<data name="prototype_db_prop_ansiNulls"><value>ANSI NULLS 有効</value></data>
|
||||
<data name="prototype_db_prop_ansiPadding"><value>ANSI Padding 有効</value></data>
|
||||
<data name="prototype_db_prop_ansiWarnings"><value>ANSI 警告有効</value></data>
|
||||
<data name="prototype_db_prop_arithabort"><value>算術アボート有効</value></data>
|
||||
<data name="prototype_db_prop_autoClose"><value>自動クローズ</value></data>
|
||||
<data name="prototype_db_prop_autoCreateStatistics"><value>統計の自動作成</value></data>
|
||||
<data name="prototype_db_prop_autoShrink"><value>自動圧縮</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatistics"><value>統計の自動更新</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatisticsAsync"><value>統計の非同期的自動更新</value></data>
|
||||
<data name="prototype_db_prop_caseSensitive"><value>大文字と小文字を区別する</value></data>
|
||||
<data name="prototype_db_prop_closeCursorOnCommit"><value>コミットでカーソルを閉じる</value></data>
|
||||
<data name="prototype_db_prop_collation"><value>照合順序</value></data>
|
||||
<data name="prototype_db_prop_concatNullYieldsNull"><value>Nullとの連結をNullとして取り扱う</value></data>
|
||||
<data name="prototype_db_prop_databaseCompatibilityLevel"><value>データベース互換性レベル</value></data>
|
||||
<data name="prototype_db_prop_databaseState"><value>データベース状態</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor"><value>既定のカーソル</value></data>
|
||||
<data name="prototype_db_prop_fullTextIndexing"><value>フルテキスト インデックス 有効化</value></data>
|
||||
<data name="prototype_db_prop_numericRoundAbort"><value>数値丸め処理アボート</value></data>
|
||||
<data name="prototype_db_prop_pageVerify"><value>ページ確認</value></data>
|
||||
<data name="prototype_db_prop_quotedIdentifier"><value>引用符で囲まれた識別子が有効</value></data>
|
||||
<data name="prototype_db_prop_readOnly"><value>読み取り専用データベース</value></data>
|
||||
<data name="prototype_db_prop_recursiveTriggers"><value>再帰トリガー有効</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess"><value>アクセスの制限</value></data>
|
||||
<data name="prototype_db_prop_selectIntoBulkCopy"><value>Select Into/ バルクコピー</value></data>
|
||||
<data name="prototype_db_prop_honorBrokerPriority"><value>Broker の優先度の許可</value></data>
|
||||
<data name="prototype_db_prop_serviceBrokerGuid"><value>Service Broker 識別子</value></data>
|
||||
<data name="prototype_db_prop_brokerEnabled"><value>ブローカー有効化</value></data>
|
||||
<data name="prototype_db_prop_truncateLogOnCheckpoint"><value>チェックポイントでのログの切り捨て</value></data>
|
||||
<data name="prototype_db_prop_dbChaining"><value>複数データベースの組み合わせ所有権有効</value></data>
|
||||
<data name="prototype_db_prop_trustworthy"><value>信頼可能</value></data>
|
||||
<data name="prototype_db_prop_dateCorrelationOptimization"><value>データ相関性の最適化
|
||||
Enabledprototype_db_prop_parameterization = Parameterization</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_forced"><value>強制</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_simple"><value>単純</value></data>
|
||||
<data name="prototype_file_dataFile"><value>列データ</value></data>
|
||||
<data name="prototype_file_logFile"><value>ログ</value></data>
|
||||
<data name="prototype_file_filestreamFile"><value>FILESTREAM データ</value></data>
|
||||
<data name="prototype_file_noFileGroup"><value>適用不可</value></data>
|
||||
<data name="prototype_file_defaultpathstring"><value><既定のパス></value></data>
|
||||
<data name="title_openConnectionsMustBeClosed"><value>コネクションを開く</value></data>
|
||||
<data name="warning_openConnectionsMustBeClosed"><value>データベースのプロパティを変更するには、SQL Server はデータベースへの他のすべての接続を閉じる必要があります。プロパティを変更して、他のすべての接続を閉じてよろしいですか?</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_autoClosed"><value>AUTO_CLOSED</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_emergency"><value>EMERGENCY</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_inaccessible"><value>INACCESSIBLE</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_normal"><value>NORMAL</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_offline"><value>OFFLINE</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recovering"><value>RECOVERING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recoveryPending"><value>RECOVERY PENDING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_restoring"><value>RESTORING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_shutdown"><value>SHUTDOWN</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_standby"><value>STANDBY</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_suspect"><value>SUSPECT</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_global"><value>GLOBAL</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_local"><value>LOCAL</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_multiple"><value>MULTI_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_restricted"><value>RESTRICTED_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_single"><value>SINGLE_USER</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_checksum"><value>CHECKSUM</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_none"><value>NONE</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_tornPageDetection"><value>TORN_PAGE_DETECTION</value></data>
|
||||
<data name="prototype_db_prop_varDecimalEnabled"><value>VarDecimal ストレージ形式有効</value></data>
|
||||
<data name="compatibilityLevel_katmai"><value>SQL Server 2008 (100)</value></data>
|
||||
<data name="prototype_db_prop_encryptionEnabled"><value>暗号化有効</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_off"><value>OFF</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_on"><value>ON</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_primary"><value>PRIMARY</value></data>
|
||||
<data name="error_db_prop_invalidleadingColumns"><value>配布ポリシーのハッシュでは、ハッシュの先頭列の番号は任意ですが、1 から 16 個の列にする必要があります</value></data>
|
||||
<data name="compatibilityLevel_denali"><value>SQL Server 2012 (110)</value></data>
|
||||
<data name="compatibilityLevel_sql14"><value>SQL Server 2014 (120) </value></data>
|
||||
<data name="compatibilityLevel_sql15"><value>SQL Server 2016 (130) </value></data>
|
||||
<data name="compatibilityLevel_sqlvNext"><value>SQL Server vNext (140) </value></data>
|
||||
<data name="general_containmentType_None"><value>なし</value></data>
|
||||
<data name="general_containmentType_Partial"><value>部分的</value></data>
|
||||
<data name="filegroups_filestreamFiles"><value>FILESTREAM ファイル</value></data>
|
||||
<data name="prototype_file_noApplicableFileGroup"><value>適用不可なファイルグループ</value></data>
|
||||
<data name="DatabaseNotAccessible"><value>データベース {0} にアクセスできません。</value></data>
|
||||
<data name="QueryServiceResultSetHasNoResults"><value>クエリーは結果を返しませんでした</value></data>
|
||||
<data name="QueryServiceResultSetTooLarge"><value>結果セットの行数が多すぎるため安全にロードすることはできません</value></data>
|
||||
<data name="prototype_db_prop_parameterization"><value>パラメーター化</value></data>
|
||||
<data name="ConflictWithNoRecovery"><value>NORECOVERY オプションを使用してバックアップを復元するときにこのオプションを指定することはできません。</value></data>
|
||||
<data name="InvalidPathForDatabaseFile"><value>データベース ファイルのパスが無効です: '{0}'</value></data>
|
||||
<data name="Log"><value>ログ</value></data>
|
||||
<data name="RestorePlanFailed"><value>リストア プランの作成に失敗しました。</value></data>
|
||||
<data name="RestoreNotSupported"><value>データベースのリストアはサポートされていません。</value></data>
|
||||
<data name="RestoreTaskName"><value>データベースのリストア</value></data>
|
||||
<data name="RestoreCopyOnly"><value>(コピーのみ)</value></data>
|
||||
<data name="RestoreBackupSetComponent"><value>コンポーネント</value></data>
|
||||
<data name="RestoreBackupSetType"><value>種類</value></data>
|
||||
<data name="RestoreBackupSetServer"><value>サーバー</value></data>
|
||||
<data name="RestoreBackupSetDatabase"><value>データベース</value></data>
|
||||
<data name="RestoreBackupSetPosition"><value>位置</value></data>
|
||||
<data name="RestoreBackupSetFirstLsn"><value>最初の LSN</value></data>
|
||||
<data name="RestoreBackupSetLastLsn"><value>最後の LSN</value></data>
|
||||
<data name="RestoreBackupSetCheckpointLsn"><value>チェックポイントの LSN</value></data>
|
||||
<data name="RestoreBackupSetFullLsn"><value>全 LSN</value></data>
|
||||
<data name="RestoreBackupSetStartDate"><value>開始日</value></data>
|
||||
<data name="RestoreBackupSetFinishDate"><value>完了日</value></data>
|
||||
<data name="RestoreBackupSetSize"><value>サイズ</value></data>
|
||||
<data name="RestoreBackupSetUserName"><value>ユーザー名</value></data>
|
||||
<data name="RestoreBackupSetExpiration"><value>有効期限</value></data>
|
||||
<data name="RestoreBackupSetName"><value>名前</value></data>
|
||||
<data name="TheLastBackupTaken"><value>最後に作成されたバックアップ ({0})</value></data>
|
||||
<data name="BackupTaskName"><value>データベースをバックアップする</value></data>
|
||||
<data name="TaskInProgress"><value>実行中</value></data>
|
||||
<data name="TaskCompleted"><value>完了</value></data>
|
||||
<data name="ScriptTaskName"><value>スクリプト</value></data>
|
||||
<data name="ProfilerConnectionNotFound"><value>接続が見つかりません。</value></data>
|
||||
<data name="BackupPathIsFolderError"><value>指定されたファイル名がディレクトリ名と同じです: {0}</value></data>
|
||||
<data name="InvalidBackupPathError"><value>バックアップ ファイルの場所が存在するかどうか確認できません: {0}</value></data>
|
||||
<data name="InvalidPathError"><value>サーバーで指定されたパスにアクセスできません: {0}</value></data>
|
||||
<data name="NoBackupsetsToRestore"><value>リストアするバックアップセットが選択されていません</value></data>
|
||||
<data name="NeverBackedUp"><value>行わない</value></data>
|
||||
<data name="AzureSqlDbEdition"><value>Azure SQL DB</value></data>
|
||||
<data name="AzureSqlDwEdition"><value>Azure SQL Data Warehouse</value></data>
|
||||
<data name="AzureSqlStretchEdition"><value>Azure SQL Stretch Database</value></data>
|
||||
<data name="Error_InvalidDirectoryName"><value>パス {0} は有効なディレクトリではありません</value></data>
|
||||
<data name="Error_ExistingDirectoryName"><value>ディレクトリ {0} 内に {1} という名前のファイルは既に存在します</value></data>
|
||||
<data name="EditDataValueTooLarge"><value>値 {0} は大きすぎるため、型 {1} の列に収まりません</value></data>
|
||||
</root>
|
||||
491
src/Microsoft.SqlTools.CoreServices/Localization/sr.ko.resx
Normal file
491
src/Microsoft.SqlTools.CoreServices/Localization/sr.ko.resx
Normal file
@@ -0,0 +1,491 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype"><value>text/microsoft-resx</value></resheader><resheader name="version"><value>1.3</value></resheader><resheader name="reader"><value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><resheader name="writer"><value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><data name="ConnectionServiceConnectErrorNullParams"><value>연결 매개 변수는 null 일 수 없습니다.</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNullOwnerUri"><value>OwnerUri은 null 이거나 비어 있을 수 없습니다.</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNotConnected"><value>SpecifiedUrl '{0}'는 기존 연결이 없습니다.</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidAuthType"><value>AuthenticationType 값으로 ' {0} '이 (가) 잘못 되었습니다. 유효한 값은 'Integrated'나 'SqlLogin' 입니다.</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidIntent"><value>ApplicationIntent 값으로 ' {0} '이 (가) 잘못 되었습니다. 유효한 값은 'ReadWrite'나 'ReadOnly' 입니다.</value></data>
|
||||
<data name="ConnectionServiceConnectionCanceled"><value>연결이 취소되었습니다.</value></data>
|
||||
<data name="ConnectionParamsValidateNullOwnerUri"><value>OwnerUri는 null 이나 빈값일 수 없습니다</value></data>
|
||||
<data name="ConnectionParamsValidateNullConnection"><value>연결 세부 정보 개체는 null이 될 수 없습니다.</value></data>
|
||||
<data name="ConnectionParamsValidateNullServerName"><value>서버 이름은 null이거나 비어 있을 수 없습니다.</value></data>
|
||||
<data name="ConnectionParamsValidateNullSqlAuth"><value>SqlLogin 인증 사용 시 {0}은(는) null이나 빈값일 수 없습니다.</value></data>
|
||||
<data name="QueryServiceCancelAlreadyCompleted"><value>쿼리가 이미 완료되어 취소할 수 없습니다.</value></data>
|
||||
<data name="QueryServiceCancelDisposeFailed"><value>쿼리 취소가 완료되었으나 쿼리를 삭제하는데 실패했습니다. Owner URI를 찾을 수 없습니다.</value></data>
|
||||
<data name="QueryServiceQueryCancelled"><value>사용자가 쿼리를 취소 했습니다.</value></data>
|
||||
<data name="QueryServiceSubsetBatchNotCompleted"><value>일괄 처리가 아직 완료되지 않았습니다.</value></data>
|
||||
<data name="QueryServiceSubsetBatchOutOfRange"><value>일괄 처리 인덱스는 0 미만 이거나 일괄 처리 갯수 보다 클 수 없습니다.</value></data>
|
||||
<data name="QueryServiceSubsetResultSetOutOfRange"><value>결과 집합 인덱스는 0 미만 이거나 결과 집합의 갯수보다 클 수 없습니다.</value></data>
|
||||
<data name="QueryServiceDataReaderByteCountInvalid"><value>반환되는 최대 바이트 수는 0보다 커야 합니다.</value></data>
|
||||
<data name="QueryServiceDataReaderCharCountInvalid"><value>반환되는 최대 문자 수는 0보다 커야 합니다.</value></data>
|
||||
<data name="QueryServiceDataReaderXmlCountInvalid"><value>반환되는 최대 XML 바이트 수는 0보다 커야 합니다.</value></data>
|
||||
<data name="QueryServiceFileWrapperWriteOnly"><value>액세스 방법은 쓰기 전용이 될 수 없습니다.</value></data>
|
||||
<data name="QueryServiceFileWrapperNotInitialized"><value>FileStreamWrapper 는 작업을 수행 하기 전에 초기화 해야 합니다.</value></data>
|
||||
<data name="QueryServiceFileWrapperReadOnly"><value>FileStreamWrapper 는 쓰기용으로 사용할 수 없습니다.</value></data>
|
||||
<data name="QueryServiceAffectedOneRow"><value>(1 개 행이 영향을 받음)</value></data>
|
||||
<data name="QueryServiceAffectedRows"><value>({0} 개 행이 영향을 받음)</value></data>
|
||||
<data name="QueryServiceCompletedSuccessfully"><value>명령이 성공적으로 완료 되었습니다.</value></data>
|
||||
<data name="QueryServiceErrorFormat"><value>메시지 {0}, 수준 {1}, 상태 {2}, 줄 {3} {4} {5}.</value></data>
|
||||
<data name="QueryServiceQueryFailed"><value>쿼리 실패: {0}</value></data>
|
||||
<data name="QueryServiceColumnNull"><value>(열 이름 없음)</value></data>
|
||||
<data name="QueryServiceRequestsNoQuery"><value>요청한 쿼리가 존재하지 않습니다.</value></data>
|
||||
<data name="QueryServiceQueryInvalidOwnerUri"><value>편집기가 데이터베이스에 연결되지 않았습니다.</value></data>
|
||||
<data name="QueryServiceQueryInProgress"><value>쿼리가 현재 편집기 세션에서 이미 실행 중입니다. 쿼리를 취소하거나 완료 될 때까지 대기 하십시오.</value></data>
|
||||
<data name="QueryServiceMessageSenderNotSql"><value>OnInfoMessage 이벤트 발신자는 SqlConnection 이어야 합니다.</value></data>
|
||||
<data name="QueryServiceSaveAsResultSetNotComplete"><value>결과는 쿼리 실행이 완료 될 때까지 저장할 수 없습니다.</value></data>
|
||||
<data name="QueryServiceSaveAsMiscStartingError"><value>저장 작업을 시작 하는 동안 내부 오류가 발생 했습니다.</value></data>
|
||||
<data name="QueryServiceSaveAsInProgress"><value>동일한 경로로 저장 요청이 진행 중입니다.</value></data>
|
||||
<data name="QueryServiceSaveAsFail"><value>저장 실패 {0}:{1}</value></data>
|
||||
<data name="QueryServiceResultSetNotRead"><value>서버로부터 결과를 모두 읽기 전에는 일부 결과를 읽을 수 없습니다.</value></data>
|
||||
<data name="QueryServiceResultSetStartRowOutOfRange"><value>시작 행은 0 미만이거나 결과 집합의 행의 갯수보다 클 수 없습니다.</value></data>
|
||||
<data name="QueryServiceResultSetRowCountOutOfRange"><value>행 수는 양수여야 합니다.</value></data>
|
||||
<data name="QueryServiceResultSetNoColumnSchema"><value>결과 집합의 열 스키마를 검색할 수 없습니다.</value></data>
|
||||
<data name="QueryServiceExecutionPlanNotFound"><value>결과 집합에서 실행 계획을 검색할 수 없습니다.</value></data>
|
||||
<data name="PeekDefinitionAzureError"><value>현재 이 기능은 Azure SQL DB와 데이터 웨어하우스에서 지원 되지 않습니다: {0}</value></data>
|
||||
<data name="PeekDefinitionError"><value>정의 피킹을 실행하는 동안 예상치 못한 오류가 발생했습니다: {0}</value></data>
|
||||
<data name="PeekDefinitionNoResultsError"><value>결과가 없습니다.</value></data>
|
||||
<data name="PeekDefinitionDatabaseError"><value>검색된 데이터베이스 개체가 없습니다.</value></data>
|
||||
<data name="PeekDefinitionNotConnectedError"><value>서버에 연결 하십시오.</value></data>
|
||||
<data name="PeekDefinitionTimedoutError"><value>작업 제한 시간이 초과 되었습니다.</value></data>
|
||||
<data name="PeekDefinitionTypeNotSupportedError"><value>현재 이 개체 형식은 지원되지 않습니다.</value></data>
|
||||
<data name="WorkspaceServicePositionLineOutOfRange"><value>위치가 파일 줄 범위를 벗어났습니다.</value></data>
|
||||
<data name="WorkspaceServicePositionColumnOutOfRange"><value>위치가 줄 {0} 의 열 범위를 벗어났습니다.</value></data>
|
||||
<data name="WorkspaceServiceBufferPositionOutOfOrder"><value>시작 위치 ({0}, {1})은(는) 반드시 끝 위치 ({2}, {3}) 과 같거나 이전이어야 합니다.</value></data>
|
||||
<data name="EE_BatchSqlMessageNoProcedureInfo"><value>메시지 {0}, 수준{1}, 상태 {2}, 줄 {3}</value></data>
|
||||
<data name="EE_BatchSqlMessageWithProcedureInfo"><value>메시지 {0}, 수준 {1}, 상태 {2}, 프로시저 {3}, 줄 {4}</value></data>
|
||||
<data name="EE_BatchSqlMessageNoLineInfo"><value>메시지 {0}, 수준 {1}, 상태 {2}</value></data>
|
||||
<data name="EE_BatchError_Exception"><value>일괄 처리를 처리 하는 동안 하는 동안 오류가 발생 합니다. 오류 메시지: {0}</value></data>
|
||||
<data name="EE_BatchExecutionInfo_RowsAffected"><value>({0} 개 행이 영향을 받음)</value></data>
|
||||
<data name="EE_ExecutionNotYetCompleteError"><value>이전 실행이 아직 완료 되지 않았습니다.</value></data>
|
||||
<data name="EE_ScriptError_Error"><value>스크립팅 오류가 발생 했습니다.</value></data>
|
||||
<data name="EE_ScriptError_ParsingSyntax"><value>{0}에 잘못된 구문이 발견되었습니다.</value></data>
|
||||
<data name="EE_ScriptError_FatalError"><value>치명적인 오류가 발생 했습니다.</value></data>
|
||||
<data name="EE_ExecutionInfo_FinalizingLoop"><value>{0}회 실행 완료...</value></data>
|
||||
<data name="EE_ExecutionInfo_QueryCancelledbyUser"><value>쿼리를 취소 했습니다.</value></data>
|
||||
<data name="EE_BatchExecutionError_Halting"><value>일괄 처리를 실행 하는 동안 오류가 발생 합니다.</value></data>
|
||||
<data name="EE_BatchExecutionError_Ignoring"><value>일괄 처리를 실행 하는 동안 오류가 발생했으나 그 오류는 무시되었습니다.</value></data>
|
||||
<data name="EE_ExecutionInfo_InitializingLoop"><value>Beginning execution loop</value></data>
|
||||
<data name="EE_ExecutionError_CommandNotSupported"><value>{0} 명령은 지원되지 않습니다.</value></data>
|
||||
<data name="EE_ExecutionError_VariableNotFound"><value>{0} 변수를 찾을 수 없습니다.</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineError"><value>SQL 실행 오류: {0}</value></data>
|
||||
<data name="BatchParserWrapperExecutionError"><value>일괄처리 구문분석 래퍼 실행: {0} 발견... 줄 {1}: {2} 설명: {3}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchMessage"><value>일괄 처리 파서 래퍼 실행 엔진 일괄 처리 메시지를 받았습니다. 메시지: {0} 자세한 메시지: {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetProcessing"><value>일괄 처리 파서 래퍼 실행 엔진 일괄 처리 ResultSet을 처리하고 있습니다. DataReader.FieldCount: {0} DataReader.RecordsAffected: {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetFinished"><value>일괄 처리 파서 래퍼 실행 엔진 일괄 처리 ResultSet을 완료했습니다.</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchCancelling"><value>일괄 처리 파서 래퍼 일괄 처리 실행을 취소하고 있습니다.</value></data>
|
||||
<data name="EE_ScriptError_Warning"><value>스크립팅 경고.</value></data>
|
||||
<data name="TroubleshootingAssistanceMessage"><value>이 오류에 대한 추가 정보는 제품 설명서의 문제 해결 항목을 참조하십시오.</value></data>
|
||||
<data name="BatchParser_CircularReference"><value>' {0} '이 (가) 재귀적으로 포함 된 파일입니다.</value></data>
|
||||
<data name="BatchParser_CommentNotTerminated"><value>주석 끝 표시 ' * /' 누락 .</value></data>
|
||||
<data name="BatchParser_StringNotTerminated"><value>문자열에 닫히지 않은 인용 부호.</value></data>
|
||||
<data name="BatchParser_IncorrectSyntax"><value>'{0}'을(를) 구문 분석하는 동안 잘못된 구문을 발견했습니다.</value></data>
|
||||
<data name="BatchParser_VariableNotDefined"><value>{0} 변수가 정의되지 않았습니다.</value></data>
|
||||
<data name="TestLocalizationConstant"><value>테스트</value></data>
|
||||
<data name="ErrorEmptyStringReplacement"><value>
|
||||
votes
|
||||
빈 문자열을 빈 문자열로 대체.</value></data>
|
||||
<data name="EditDataSessionNotFound"><value>편집 세션이 존재하지 않습니다.</value></data>
|
||||
<data name="EditDataQueryNotCompleted"><value>쿼리 실행이 완료되지 않았습니다.</value></data>
|
||||
<data name="EditDataQueryImproperResultSets"><value>쿼리가 정확히 하나의 결과 집합을 생성하지 않았습니다.</value></data>
|
||||
<data name="EditDataFailedAddRow"><value>업데이트 캐시에 새로운 행 추가를 실패했습니다.</value></data>
|
||||
<data name="EditDataRowOutOfRange"><value>지정된 row ID가 수정 중인 캐시의 행 범위 밖에 있습니다.</value></data>
|
||||
<data name="EditDataUpdatePending"><value>이 행에 대한 업데이트가 이미 보류 중이므로 먼저 되돌려야 합니다.</value></data>
|
||||
<data name="EditDataUpdateNotPending"><value>주어진 row ID에 보류 중인 업데이트가 없습니다.</value></data>
|
||||
<data name="EditDataObjectMetadataNotFound"><value>테이블이나 뷰 메타 데이터를 찾을 수 없습니다.</value></data>
|
||||
<data name="EditDataInvalidFormatBinary"><value>이진 열에 형식이 잘못되었습니다.</value></data>
|
||||
<data name="EditDataInvalidFormatBoolean"><value>Boolean 열은 반드시 숫자 1이나 0 혹은 문자 true나 false여야 합니다.</value></data>
|
||||
<data name="EditDataCreateScriptMissingValue"><value>필수 셀 값이 누락되었습니다.</value></data>
|
||||
<data name="EditDataDeleteSetCell"><value>행 삭제가 보류 중이므로, 셀을 업데이트할 수 없습니다.</value></data>
|
||||
<data name="EditDataColumnIdOutOfRange"><value>열 ID는 쿼리의 열 범위 내에 있어야 합니다.</value></data>
|
||||
<data name="EditDataColumnCannotBeEdited"><value>열을 편집할 수 없습니다.</value></data>
|
||||
<data name="EditDataColumnNoKeyColumns"><value>키 열이 없습니다.</value></data>
|
||||
<data name="EditDataScriptFilePathNull"><value>출력 파일명이 필요합니다.</value></data>
|
||||
<data name="EditDataUnsupportedObjectType"><value>데이터베이스 개체 {0} 는 편집할 수 없습니다.</value></data>
|
||||
<data name="ConnectionServiceDbErrorDefaultNotConnected"><value>지정된 Uri ' {0} '에 기본 연결이 지정되지 않았습니다.</value></data>
|
||||
<data name="EditDataCommitInProgress"><value>커밋 작업이 진행 중입니다. 완료될 때까지 기다리세요.</value></data>
|
||||
<data name="SqlScriptFormatterDecimalMissingPrecision"><value>Decimal 형식 열에 전체 자릿수 또는 소수 자릿수가 없습니다.</value></data>
|
||||
<data name="EditDataComputedColumnPlaceholder"><value><TBD></value></data>
|
||||
<data name="QueryServiceResultSetAddNoRows"><value>결과 버퍼에 새로운 행을 추가할 수 없거나 데이터 리더에 행이 없습니다.</value></data>
|
||||
<data name="EditDataTimeOver24Hrs"><value>TIME 열의 값은 00:00:00.0000000과 23:59:59.9999999 사이의 값만 허용됩니다.</value></data>
|
||||
<data name="EditDataNullNotAllowed"><value>이 열은 NULL을 허용하지 않습니다.</value></data>
|
||||
<data name="EditDataSessionAlreadyExists"><value>편집 세션이 이미 존재합니다.</value></data>
|
||||
<data name="EditDataSessionNotInitialized"><value>편집 세션이 초기화 되지 않았습니다.</value></data>
|
||||
<data name="EditDataSessionAlreadyInitialized"><value>편집 세션이 이미 초기화 되었습니다.</value></data>
|
||||
<data name="EditDataSessionAlreadyInitializing"><value>편집 세션이 이미 초기화 되었거나 초기화 중입니다.</value></data>
|
||||
<data name="EditDataQueryFailed"><value>쿼리 실행에 실패했습니다. 자세한 정보는 메시지를 참조하세요.</value></data>
|
||||
<data name="EditDataFilteringNegativeLimit"><value>결과 제한은 음수가 될 수 없습니다.</value></data>
|
||||
<data name="QueryServiceCellNull"><value>NULL</value></data>
|
||||
<data name="EditDataMetadataObjectNameRequired"><value>개체 이름이 필요합니다.</value></data>
|
||||
<data name="EditDataMetadataTooManyIdentifiers"><value>서버와 데이터베이스를 명시적으로 지정할 수 없습니다.</value></data>
|
||||
<data name="EditDataMetadataNotExtended"><value>테이블 메타데이터에 확장 속성이 없습니다.</value></data>
|
||||
<data name="EditDataObjectNotFound"><value>편집하려는 테이블이나 뷰를 찾을 수 없습니다</value></data>
|
||||
<data name="TreeNodeError"><value>오류 확장: {0}</value></data>
|
||||
<data name="ServerNodeConnectionError"><value>{0}에 연결하는 동안 오류가 발생했습니다.</value></data>
|
||||
<data name="SchemaHierarchy_Aggregates"><value>집계</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoles"><value>서버 역할</value></data>
|
||||
<data name="SchemaHierarchy_ApplicationRoles"><value>응용 프로그램 역할</value></data>
|
||||
<data name="SchemaHierarchy_Assemblies"><value>어셈블리</value></data>
|
||||
<data name="SchemaHierarchy_AssemblyFiles"><value>어셈블리 파일</value></data>
|
||||
<data name="SchemaHierarchy_AsymmetricKeys"><value>비대칭 키</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAsymmetricKeys"><value>비대칭 키</value></data>
|
||||
<data name="SchemaHierarchy_DataCompressionOptions"><value>데이터 압축 옵션</value></data>
|
||||
<data name="SchemaHierarchy_Certificates"><value>인증서</value></data>
|
||||
<data name="SchemaHierarchy_FileTables"><value>FileTables</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseCertificates"><value>인증서</value></data>
|
||||
<data name="SchemaHierarchy_CheckConstraints"><value>Check 제약 조건</value></data>
|
||||
<data name="SchemaHierarchy_Columns"><value>열</value></data>
|
||||
<data name="SchemaHierarchy_Constraints"><value>제약 조건</value></data>
|
||||
<data name="SchemaHierarchy_Contracts"><value>계약</value></data>
|
||||
<data name="SchemaHierarchy_Credentials"><value>자격 증명</value></data>
|
||||
<data name="SchemaHierarchy_ErrorMessages"><value>오류 메시지</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoleMembership"><value>서버 역할 멤버 자격</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseOptions"><value>데이터베이스 옵션</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseRoles"><value>데이터베이스 역할</value></data>
|
||||
<data name="SchemaHierarchy_RoleMemberships"><value>역할 멤버 자격</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseTriggers"><value>데이터베이스 트리거</value></data>
|
||||
<data name="SchemaHierarchy_DefaultConstraints"><value>기본 제약 조건</value></data>
|
||||
<data name="SchemaHierarchy_Defaults"><value>기본값</value></data>
|
||||
<data name="SchemaHierarchy_Sequences"><value>시퀀스</value></data>
|
||||
<data name="SchemaHierarchy_Endpoints"><value>끝점</value></data>
|
||||
<data name="SchemaHierarchy_EventNotifications"><value>이벤트 알림</value></data>
|
||||
<data name="SchemaHierarchy_ServerEventNotifications"><value>서버 이벤트 알림</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedProperties"><value>확장 속성</value></data>
|
||||
<data name="SchemaHierarchy_FileGroups"><value>파일 그룹</value></data>
|
||||
<data name="SchemaHierarchy_ForeignKeys"><value>외래 키</value></data>
|
||||
<data name="SchemaHierarchy_FullTextCatalogs"><value>전체 텍스트 카탈로그</value></data>
|
||||
<data name="SchemaHierarchy_FullTextIndexes"><value>전체 텍스트 인덱스</value></data>
|
||||
<data name="SchemaHierarchy_Functions"><value>함수</value></data>
|
||||
<data name="SchemaHierarchy_Indexes"><value>인덱스</value></data>
|
||||
<data name="SchemaHierarchy_InlineFunctions"><value>인라인 함수</value></data>
|
||||
<data name="SchemaHierarchy_Keys"><value>키</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServers"><value>연결된 서버</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServerLogins"><value>연결된 서버 로그인</value></data>
|
||||
<data name="SchemaHierarchy_Logins"><value>로그인</value></data>
|
||||
<data name="SchemaHierarchy_MasterKey"><value>마스터 키</value></data>
|
||||
<data name="SchemaHierarchy_MasterKeys"><value>마스터 키</value></data>
|
||||
<data name="SchemaHierarchy_MessageTypes"><value>메시지 유형</value></data>
|
||||
<data name="SchemaHierarchy_MultiSelectFunctions"><value>테이블 반환 함수</value></data>
|
||||
<data name="SchemaHierarchy_Parameters"><value>매개 변수</value></data>
|
||||
<data name="SchemaHierarchy_PartitionFunctions"><value>파티션 함수</value></data>
|
||||
<data name="SchemaHierarchy_PartitionSchemes"><value>파티션 구성표</value></data>
|
||||
<data name="SchemaHierarchy_Permissions"><value>사용 권한</value></data>
|
||||
<data name="SchemaHierarchy_PrimaryKeys"><value>기본 키</value></data>
|
||||
<data name="SchemaHierarchy_Programmability"><value>프로그래밍 기능</value></data>
|
||||
<data name="SchemaHierarchy_Queues"><value>큐</value></data>
|
||||
<data name="SchemaHierarchy_RemoteServiceBindings"><value>원격 서비스 바인딩</value></data>
|
||||
<data name="SchemaHierarchy_ReturnedColumns"><value>반환 열</value></data>
|
||||
<data name="SchemaHierarchy_Roles"><value>역할</value></data>
|
||||
<data name="SchemaHierarchy_Routes"><value>경로</value></data>
|
||||
<data name="SchemaHierarchy_Rules"><value>규칙</value></data>
|
||||
<data name="SchemaHierarchy_Schemas"><value>스키마</value></data>
|
||||
<data name="SchemaHierarchy_Security"><value>보안</value></data>
|
||||
<data name="SchemaHierarchy_ServerObjects"><value>서버 개체</value></data>
|
||||
<data name="SchemaHierarchy_Management"><value>관리</value></data>
|
||||
<data name="SchemaHierarchy_ServerTriggers"><value>트리거</value></data>
|
||||
<data name="SchemaHierarchy_ServiceBroker"><value>Service Broker</value></data>
|
||||
<data name="SchemaHierarchy_Services"><value>서비스</value></data>
|
||||
<data name="SchemaHierarchy_Signatures"><value>서명</value></data>
|
||||
<data name="SchemaHierarchy_LogFiles"><value>로그 파일</value></data>
|
||||
<data name="SchemaHierarchy_Statistics"><value>통계</value></data>
|
||||
<data name="SchemaHierarchy_Storage"><value>저장소</value></data>
|
||||
<data name="SchemaHierarchy_StoredProcedures"><value>저장 프로시저</value></data>
|
||||
<data name="SchemaHierarchy_SymmetricKeys"><value>대칭 키</value></data>
|
||||
<data name="SchemaHierarchy_Synonyms"><value>동의어</value></data>
|
||||
<data name="SchemaHierarchy_Tables"><value>테이블</value></data>
|
||||
<data name="SchemaHierarchy_Triggers"><value>트리거</value></data>
|
||||
<data name="SchemaHierarchy_Types"><value>유형</value></data>
|
||||
<data name="SchemaHierarchy_UniqueKeys"><value>고유 키</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedDataTypes"><value>사용자 정의 데이터 형식</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTypes"><value>사용자 정의 형식 (CLR)</value></data>
|
||||
<data name="SchemaHierarchy_Users"><value>사용자</value></data>
|
||||
<data name="SchemaHierarchy_Views"><value>뷰</value></data>
|
||||
<data name="SchemaHierarchy_XmlIndexes"><value>XML 인덱스</value></data>
|
||||
<data name="SchemaHierarchy_XMLSchemaCollections"><value>XML 스키마 컬렉션</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTableTypes"><value>사용자 정의 테이블 형식</value></data>
|
||||
<data name="SchemaHierarchy_FilegroupFiles"><value>파일</value></data>
|
||||
<data name="MissingCaption"><value>캡션 누락</value></data>
|
||||
<data name="SchemaHierarchy_BrokerPriorities"><value>브로커 우선 순위</value></data>
|
||||
<data name="SchemaHierarchy_CryptographicProviders"><value>암호화 공급자</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAuditSpecifications"><value>데이터베이스 감사 사양</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseEncryptionKeys"><value>데이터베이스 암호화 키</value></data>
|
||||
<data name="SchemaHierarchy_EventSessions"><value>이벤트 세션</value></data>
|
||||
<data name="SchemaHierarchy_FullTextStopLists"><value>전체 텍스트 중지 목록</value></data>
|
||||
<data name="SchemaHierarchy_ResourcePools"><value>리소스 풀</value></data>
|
||||
<data name="SchemaHierarchy_ServerAudits"><value>감사</value></data>
|
||||
<data name="SchemaHierarchy_ServerAuditSpecifications"><value>서버 감사 사양</value></data>
|
||||
<data name="SchemaHierarchy_SpatialIndexes"><value>공간 인덱스</value></data>
|
||||
<data name="SchemaHierarchy_WorkloadGroups"><value>작업 그룹</value></data>
|
||||
<data name="SchemaHierarchy_SqlFiles"><value>SQL 파일</value></data>
|
||||
<data name="SchemaHierarchy_ServerFunctions"><value>서버 함수</value></data>
|
||||
<data name="SchemaHierarchy_SqlType"><value>SQL 유형</value></data>
|
||||
<data name="SchemaHierarchy_ServerOptions"><value>서버 옵션</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseDiagrams"><value>데이터베이스 다이어그램</value></data>
|
||||
<data name="SchemaHierarchy_SystemTables"><value>시스템 테이블</value></data>
|
||||
<data name="SchemaHierarchy_Databases"><value>데이터베이스</value></data>
|
||||
<data name="SchemaHierarchy_SystemContracts"><value>시스템 계약</value></data>
|
||||
<data name="SchemaHierarchy_SystemDatabases"><value>시스템 데이터베이스</value></data>
|
||||
<data name="SchemaHierarchy_SystemMessageTypes"><value>시스템 메시지 유형</value></data>
|
||||
<data name="SchemaHierarchy_SystemQueues"><value>시스템 큐</value></data>
|
||||
<data name="SchemaHierarchy_SystemServices"><value>시스템 서비스</value></data>
|
||||
<data name="SchemaHierarchy_SystemStoredProcedures"><value>시스템 저장 프로시저</value></data>
|
||||
<data name="SchemaHierarchy_SystemViews"><value>시스템 뷰</value></data>
|
||||
<data name="SchemaHierarchy_DataTierApplications"><value>데이터 계층 응용 프로그램</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedStoredProcedures"><value>확장 저장 프로시저</value></data>
|
||||
<data name="SchemaHierarchy_SystemAggregateFunctions"><value>집계 함수</value></data>
|
||||
<data name="SchemaHierarchy_SystemApproximateNumerics"><value>근사치</value></data>
|
||||
<data name="SchemaHierarchy_SystemBinaryStrings"><value>이진 문자열</value></data>
|
||||
<data name="SchemaHierarchy_SystemCharacterStrings"><value>문자열</value></data>
|
||||
<data name="SchemaHierarchy_SystemCLRDataTypes"><value>CLR 데이터 형식</value></data>
|
||||
<data name="SchemaHierarchy_SystemConfigurationFunctions"><value>구성 함수</value></data>
|
||||
<data name="SchemaHierarchy_SystemCursorFunctions"><value>커서 함수</value></data>
|
||||
<data name="SchemaHierarchy_SystemDataTypes"><value>시스템 데이터 형식</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTime"><value>날짜 및 시간</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTimeFunctions"><value>날짜 및 시간 함수</value></data>
|
||||
<data name="SchemaHierarchy_SystemExactNumerics"><value>정확한 수치</value></data>
|
||||
<data name="SchemaHierarchy_SystemFunctions"><value>시스템 함수</value></data>
|
||||
<data name="SchemaHierarchy_SystemHierarchyIdFunctions"><value>계층 구조 ID 함수</value></data>
|
||||
<data name="SchemaHierarchy_SystemMathematicalFunctions"><value>수학 함수</value></data>
|
||||
<data name="SchemaHierarchy_SystemMetadataFunctions"><value>메타데이터 함수</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherDataTypes"><value>기타 데이터 형식</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherFunctions"><value>기타 함수</value></data>
|
||||
<data name="SchemaHierarchy_SystemRowsetFunctions"><value>행 집합 함수</value></data>
|
||||
<data name="SchemaHierarchy_SystemSecurityFunctions"><value>보안 함수</value></data>
|
||||
<data name="SchemaHierarchy_SystemSpatialDataTypes"><value>공간 데이터 형식</value></data>
|
||||
<data name="SchemaHierarchy_SystemStringFunctions"><value>문자열 함수</value></data>
|
||||
<data name="SchemaHierarchy_SystemSystemStatisticalFunctions"><value>시스템 통계 함수</value></data>
|
||||
<data name="SchemaHierarchy_SystemTextAndImageFunctions"><value>텍스트 및 이미지 함수</value></data>
|
||||
<data name="SchemaHierarchy_SystemUnicodeCharacterStrings"><value>유니코드 문자열</value></data>
|
||||
<data name="SchemaHierarchy_AggregateFunctions"><value>집계 함수</value></data>
|
||||
<data name="SchemaHierarchy_ScalarValuedFunctions"><value>스칼라 반환 함수</value></data>
|
||||
<data name="SchemaHierarchy_TableValuedFunctions"><value>테이블 반환 함수</value></data>
|
||||
<data name="SchemaHierarchy_SystemExtendedStoredProcedures"><value>시스템 확장 저장 프로시저</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInType"><value>기본 제공 유형</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInServerRole"><value>기본 제공 서버 역할</value></data>
|
||||
<data name="SchemaHierarchy_UserWithPassword"><value>암호가 있는 사용자</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyList"><value>검색 속성 목록</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPolicies"><value>보안 정책</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPredicates"><value>보안 조건자</value></data>
|
||||
<data name="SchemaHierarchy_ServerRole"><value>서버 역할</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyLists"><value>검색 속성 목록</value></data>
|
||||
<data name="SchemaHierarchy_ColumnStoreIndexes"><value>열 저장 인덱스</value></data>
|
||||
<data name="SchemaHierarchy_TableTypeIndexes"><value>테이블 형식 인덱스</value></data>
|
||||
<data name="SchemaHierarchy_SelectiveXmlIndexes"><value>선택적 XML 인덱스</value></data>
|
||||
<data name="SchemaHierarchy_XmlNamespaces"><value>XML 네임스페이스</value></data>
|
||||
<data name="SchemaHierarchy_XmlTypedPromotedPaths"><value>XML 유형의 공유된 경로</value></data>
|
||||
<data name="SchemaHierarchy_SqlTypedPromotedPaths"><value>T-SQL 유형의 공유된 경로</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseScopedCredentials"><value>데이터베이스 범위 자격 증명</value></data>
|
||||
<data name="SchemaHierarchy_ExternalDataSources"><value>외부 데이터 원본</value></data>
|
||||
<data name="SchemaHierarchy_ExternalFileFormats"><value>외부 파일 형식</value></data>
|
||||
<data name="SchemaHierarchy_ExternalResources"><value>외부 리소스</value></data>
|
||||
<data name="SchemaHierarchy_ExternalTables"><value>외부 테이블</value></data>
|
||||
<data name="SchemaHierarchy_AlwaysEncryptedKeys"><value>Always Encrypted 키</value></data>
|
||||
<data name="SchemaHierarchy_ColumnMasterKeys"><value>열 마스터 키</value></data>
|
||||
<data name="SchemaHierarchy_ColumnEncryptionKeys"><value>열 암호화 키</value></data>
|
||||
<data name="SchemaHierarchy_Server"><value>서버</value></data>
|
||||
<data name="ScriptingParams_ConnectionString_Property_Invalid"><value>ScriptingParams.ConnectionString 속성 분석을 하는 동안 오류가 발생했습니다.</value></data>
|
||||
<data name="ScriptingParams_FilePath_Property_Invalid"><value>ScriptingParams.FilePath 속성에 잘못된 디렉터리 지정</value></data>
|
||||
<data name="ScriptingListObjectsCompleteParams_ConnectionString_Property_Invalid"><value>ScriptingListObjectsCompleteParams.ConnectionSring 속성을 분석할때 오류가 생겼습니다.</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterLabelFormatString"><value>{0}({1}, {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterNoDefaultLabel"><value>기본값 없음</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputLabel"><value>입력</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputLabel"><value>입/출력</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputReadOnlyLabel"><value>입력/읽기 전용</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputReadOnlyLabel"><value>입/출력/읽기 전용</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterDefaultLabel"><value>기본값</value></data>
|
||||
<data name="SchemaHierarchy_NullColumn_Label"><value>Null</value></data>
|
||||
<data name="SchemaHierarchy_NotNullColumn_Label"><value>Not Null</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithType"><value>{0}({1}, {2})</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithoutType"><value>{0}({1})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithType"><value>{0}({1}계산됨, {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithoutType"><value>{0}({1}계산됨)</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithoutType"><value>{0}(열 집합, {1})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithType"><value>{0}(열 집합, {1}{2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithTypeAndKeyString"><value>{0}(열 집합, {1}, {2}, {3})</value></data>
|
||||
<data name="UniqueIndex_LabelPart"><value>고유</value></data>
|
||||
<data name="NonUniqueIndex_LabelPart"><value>고유하지 않음</value></data>
|
||||
<data name="ClusteredIndex_LabelPart"><value>클러스터형</value></data>
|
||||
<data name="NonClusteredIndex_LabelPart"><value>비클러스터형</value></data>
|
||||
<data name="History_LabelPart"><value>기록</value></data>
|
||||
<data name="SystemVersioned_LabelPart"><value>시스템 버전 관리</value></data>
|
||||
<data name="unavailable"><value>사용할 수 없음</value></data>
|
||||
<data name="filegroup_dialog_defaultFilegroup"><value>현재 기본 파일 그룹: {0}</value></data>
|
||||
<data name="filegroup_dialog_title"><value>{0}에 대한 새 파일 그룹</value></data>
|
||||
<data name="filegroups_default"><value>기본값</value></data>
|
||||
<data name="filegroups_files"><value>파일</value></data>
|
||||
<data name="filegroups_name"><value>이름</value></data>
|
||||
<data name="filegroups_readonly"><value>읽기 전용</value></data>
|
||||
<data name="general_autogrowth"><value>자동 증가 / 최대 크기</value></data>
|
||||
<data name="general_builderText"><value>...</value></data>
|
||||
<data name="general_default"><value><기본값></value></data>
|
||||
<data name="general_fileGroup"><value>파일 그룹</value></data>
|
||||
<data name="general_fileName"><value>논리적 이름</value></data>
|
||||
<data name="general_fileType"><value>파일 형식</value></data>
|
||||
<data name="general_initialSize"><value>처음 크기 (MB)</value></data>
|
||||
<data name="general_newFilegroup"><value><새 파일 그룹></value></data>
|
||||
<data name="general_path"><value>경로</value></data>
|
||||
<data name="general_physicalFileName"><value>파일 이름</value></data>
|
||||
<data name="general_rawDevice"><value><원시 장치></value></data>
|
||||
<data name="general_recoveryModel_bulkLogged"><value>대량 로그</value></data>
|
||||
<data name="general_recoveryModel_full"><value>전체</value></data>
|
||||
<data name="general_recoveryModel_simple"><value>단순</value></data>
|
||||
<data name="general_titleSearchOwner"><value>데이터베이스 소유자 선택</value></data>
|
||||
<data name="prototype_autogrowth_disabled"><value>없음</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByMB"><value>{0} MB 단위로 {1} MB까지 제한됨</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByPercent"><value>{0} % 단위로 {1} MB까지 제한됨</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByMB"><value>{0} MB 단위로, 제한 없음</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByPercent"><value>{0} % 단위로, 제한 없음</value></data>
|
||||
<data name="prototype_autogrowth_unlimitedfilestream"><value>제한 없음</value></data>
|
||||
<data name="prototype_autogrowth_limitedfilestream"><value>{0} MB로 제한됨</value></data>
|
||||
<data name="prototype_db_category_automatic"><value>자동</value></data>
|
||||
<data name="prototype_db_category_servicebroker"><value>Service Broker</value></data>
|
||||
<data name="prototype_db_category_collation"><value>데이터 정렬</value></data>
|
||||
<data name="prototype_db_category_cursor"><value>커서</value></data>
|
||||
<data name="prototype_db_category_misc"><value>기타</value></data>
|
||||
<data name="prototype_db_category_recovery"><value>복구</value></data>
|
||||
<data name="prototype_db_category_state"><value>상태</value></data>
|
||||
<data name="prototype_db_prop_ansiNullDefault"><value>ANSI NULL 기본값</value></data>
|
||||
<data name="prototype_db_prop_ansiNulls"><value>ANSI NULLS 사용</value></data>
|
||||
<data name="prototype_db_prop_ansiPadding"><value>ANSI 패딩 설정</value></data>
|
||||
<data name="prototype_db_prop_ansiWarnings"><value>ANSI Warnings 사용</value></data>
|
||||
<data name="prototype_db_prop_arithabort"><value>산술 연산 중단 설정</value></data>
|
||||
<data name="prototype_db_prop_autoClose"><value>자동 닫기</value></data>
|
||||
<data name="prototype_db_prop_autoCreateStatistics"><value>통계 자동 작성</value></data>
|
||||
<data name="prototype_db_prop_autoShrink"><value>자동 축소</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatistics"><value>통계 자동 업데이트</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatisticsAsync"><value>통계를 비동기적으로 자동 업데이트</value></data>
|
||||
<data name="prototype_db_prop_caseSensitive"><value>대/소문자 구분</value></data>
|
||||
<data name="prototype_db_prop_closeCursorOnCommit"><value>커밋 시 커서 닫기 설정</value></data>
|
||||
<data name="prototype_db_prop_collation"><value>데이터 정렬</value></data>
|
||||
<data name="prototype_db_prop_concatNullYieldsNull"><value>Null 연결 시 Null 생성</value></data>
|
||||
<data name="prototype_db_prop_databaseCompatibilityLevel"><value>데이터베이스 호환성 수준</value></data>
|
||||
<data name="prototype_db_prop_databaseState"><value>데이터베이스 상태</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor"><value>기본 커서</value></data>
|
||||
<data name="prototype_db_prop_fullTextIndexing"><value>전체 텍스트 인덱싱 설정</value></data>
|
||||
<data name="prototype_db_prop_numericRoundAbort"><value>숫자 반올림 시 중단</value></data>
|
||||
<data name="prototype_db_prop_pageVerify"><value>페이지 확인</value></data>
|
||||
<data name="prototype_db_prop_quotedIdentifier"><value>따옴표 붙은 식별자 설정</value></data>
|
||||
<data name="prototype_db_prop_readOnly"><value>데이터베이스 읽기 전용</value></data>
|
||||
<data name="prototype_db_prop_recursiveTriggers"><value>재귀적 트리거 설정</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess"><value>액세스 제한</value></data>
|
||||
<data name="prototype_db_prop_selectIntoBulkCopy"><value>SELECT INTO/대량 복사</value></data>
|
||||
<data name="prototype_db_prop_honorBrokerPriority"><value>Broker 우선 순위 인식</value></data>
|
||||
<data name="prototype_db_prop_serviceBrokerGuid"><value>Service Broker 식별자</value></data>
|
||||
<data name="prototype_db_prop_brokerEnabled"><value>Broker 활성화</value></data>
|
||||
<data name="prototype_db_prop_truncateLogOnCheckpoint"><value>검사점에서 로그 자름</value></data>
|
||||
<data name="prototype_db_prop_dbChaining"><value>데이터베이스 간 소유권 체인 사용</value></data>
|
||||
<data name="prototype_db_prop_trustworthy"><value>신뢰</value></data>
|
||||
<data name="prototype_db_prop_dateCorrelationOptimization"><value>날짜 상관관계 최적화 설정</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_forced"><value>강제</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_simple"><value>단순</value></data>
|
||||
<data name="prototype_file_dataFile"><value>ROWS 데이터</value></data>
|
||||
<data name="prototype_file_logFile"><value>로그</value></data>
|
||||
<data name="prototype_file_filestreamFile"><value>FILESTREAM 데이터</value></data>
|
||||
<data name="prototype_file_noFileGroup"><value>해당 사항 없음</value></data>
|
||||
<data name="prototype_file_defaultpathstring"><value><기본 경로></value></data>
|
||||
<data name="title_openConnectionsMustBeClosed"><value>연결 열기</value></data>
|
||||
<data name="warning_openConnectionsMustBeClosed"><value>데이터베이스 속성을 변경하기 위해, SQL Server가 database_ 에 다른 연결을 모두 닫아야 합니다. 속성을 변경하고 다른 연결을 모두 닫으시겠습니까?</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_autoClosed"><value>AUTO_CLOSED</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_emergency"><value>긴급</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_inaccessible"><value>INACCESSIBLE</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_normal"><value>NORMAL</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_offline"><value>오프라인</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recovering"><value>복구 중</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recoveryPending"><value>복구 보류 중</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_restoring"><value>RESTORING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_shutdown"><value>SHUTDOWN</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_standby"><value>STANDBY</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_suspect"><value>SUSPECT</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_global"><value>GLOBAL</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_local"><value>LOCAL</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_multiple"><value>MULTI_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_restricted"><value>RESTRICTED_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_single"><value>SINGLE_USER</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_checksum"><value>CHECKSUM</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_none"><value>NONE</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_tornPageDetection"><value>TORN_PAGE_DETECTION</value></data>
|
||||
<data name="prototype_db_prop_varDecimalEnabled"><value>VarDecimal 저장소 형식 사용</value></data>
|
||||
<data name="compatibilityLevel_katmai"><value>SQL Server 2008 (100)</value></data>
|
||||
<data name="prototype_db_prop_encryptionEnabled"><value>암호화 사용</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_off"><value>OFF</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_on"><value>ON</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_primary"><value>PRIMARY</value></data>
|
||||
<data name="error_db_prop_invalidleadingColumns"><value>배포 정책이 HASH인 경우 선행 해시 열 수는 선택 사항이지만, 선택할 경우 1개에서 16개 사이의 열로 지정해야 합니다.</value></data>
|
||||
<data name="compatibilityLevel_denali"><value>SQL Server 2012 (110)</value></data>
|
||||
<data name="compatibilityLevel_sql14"><value>SQL Server 2014 (120)</value></data>
|
||||
<data name="compatibilityLevel_sql15"><value>SQL Server 2016 (130)</value></data>
|
||||
<data name="compatibilityLevel_sqlvNext"><value>SQL Server vNext (140)</value></data>
|
||||
<data name="general_containmentType_None"><value>없음</value></data>
|
||||
<data name="general_containmentType_Partial"><value>부분</value></data>
|
||||
<data name="filegroups_filestreamFiles"><value>FILESTREAM 파일</value></data>
|
||||
<data name="prototype_file_noApplicableFileGroup"><value>해당 파일 그룹 없음</value></data>
|
||||
<data name="DatabaseNotAccessible"><value>{0} 데이터베이스에 액세스할 수 없습니다.</value></data>
|
||||
<data name="QueryServiceResultSetHasNoResults"><value>쿼리 반환 결과 없음</value></data>
|
||||
<data name="QueryServiceResultSetTooLarge"><value>결과 집합의 행 수가 너무 많아서 안전하게 불러들일 수 없습니다.</value></data>
|
||||
<data name="prototype_db_prop_parameterization"><value>매개 변수화</value></data>
|
||||
<data name="ConflictWithNoRecovery"><value>NORECOVERY 옵션을 사용하여 백업을 복원하는 동안 이 옵션을 지정할 수 없습니다.</value></data>
|
||||
<data name="InvalidPathForDatabaseFile"><value>데이터베이스 파일의 경로가 잘못되었습니다. '{0}'</value></data>
|
||||
<data name="Log"><value>로그</value></data>
|
||||
<data name="RestorePlanFailed"><value>복원 계획을 만들지 못했습니다</value></data>
|
||||
<data name="RestoreNotSupported"><value>데이터베이스 복원은 지원되지 않습니다.</value></data>
|
||||
<data name="RestoreTaskName"><value>데이터베이스 복원</value></data>
|
||||
<data name="RestoreCopyOnly"><value>복사 전용</value></data>
|
||||
<data name="RestoreBackupSetComponent"><value>구성 요소</value></data>
|
||||
<data name="RestoreBackupSetType"><value>형식</value></data>
|
||||
<data name="RestoreBackupSetServer"><value>서버</value></data>
|
||||
<data name="RestoreBackupSetDatabase"><value>데이터베이스</value></data>
|
||||
<data name="RestoreBackupSetPosition"><value>위치</value></data>
|
||||
<data name="RestoreBackupSetFirstLsn"><value>첫 번째 LSN</value></data>
|
||||
<data name="RestoreBackupSetLastLsn"><value>마지막 LSN</value></data>
|
||||
<data name="RestoreBackupSetCheckpointLsn"><value>검사점 LSN</value></data>
|
||||
<data name="RestoreBackupSetFullLsn"><value>전체 LSN</value></data>
|
||||
<data name="RestoreBackupSetStartDate"><value>시작 날짜</value></data>
|
||||
<data name="RestoreBackupSetFinishDate"><value>완료 날짜</value></data>
|
||||
<data name="RestoreBackupSetSize"><value>크기</value></data>
|
||||
<data name="RestoreBackupSetUserName"><value>사용자 이름</value></data>
|
||||
<data name="RestoreBackupSetExpiration"><value>만료</value></data>
|
||||
<data name="RestoreBackupSetName"><value>Name</value></data>
|
||||
<data name="TheLastBackupTaken"><value>수행된 마지막 백업({0})</value></data>
|
||||
<data name="BackupTaskName"><value>데이터베이스 백업</value></data>
|
||||
<data name="TaskInProgress"><value>진행 중</value></data>
|
||||
<data name="TaskCompleted"><value>완료됨</value></data>
|
||||
<data name="ScriptTaskName"><value>스크립팅</value></data>
|
||||
<data name="ProfilerConnectionNotFound"><value>연결 없음</value></data>
|
||||
<data name="BackupPathIsFolderError"><value>지정한 파일 이름은 디렉터리 이름이기도 합니다: {0}</value></data>
|
||||
<data name="InvalidBackupPathError"><value>백업 파일 위치를 확인할 수 없습니다: {0}</value></data>
|
||||
<data name="InvalidPathError"><value>서버에서 지정된 경로에 액세스할 수 없습니다: {0}</value></data>
|
||||
<data name="NoBackupsetsToRestore"><value>복원하려는 백업 세트를 선택하지 않았습니다</value></data>
|
||||
<data name="NeverBackedUp"><value>안 함 </value></data>
|
||||
<data name="AzureSqlDbEdition"><value>Azure SQL DB</value></data>
|
||||
<data name="AzureSqlDwEdition"><value>Azure SQL Data Warehouse</value></data>
|
||||
<data name="AzureSqlStretchEdition"><value>Azure SQL 신축성 데이터베이스</value></data>
|
||||
<data name="Error_InvalidDirectoryName"><value>경로 [{0}]은(는) 올바른 디렉터리가 아닙니다.</value></data>
|
||||
<data name="Error_ExistingDirectoryName"><value>디렉터리 {0}에 대한 파일{1} 이 이미 존재합니다. </value></data>
|
||||
<data name="EditDataValueTooLarge"><value>값 {0}이 너무 커서 {1} 유형의 열에 들어갈 수 없습니다.</value></data>
|
||||
</root>
|
||||
490
src/Microsoft.SqlTools.CoreServices/Localization/sr.pt-BR.resx
Normal file
490
src/Microsoft.SqlTools.CoreServices/Localization/sr.pt-BR.resx
Normal file
@@ -0,0 +1,490 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype"><value>text/microsoft-resx</value></resheader><resheader name="version"><value>1.3</value></resheader><resheader name="reader"><value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><resheader name="writer"><value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><data name="ConnectionServiceConnectErrorNullParams"><value>Parâmetros de Conexão não podem ser nulos</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNullOwnerUri"><value>OwnerUri não pode ser nulo ou vazio</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNotConnected"><value>SpecifiedUri '{0}' não há uma conexão existente</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidAuthType"><value>Valor inválido '{0}' para AuthenticationType. Os valores válidos são 'Integrada' e 'SqlLogin'.</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidIntent"><value>Valor inválido '{0}' para ApplicationIntent. Os valores válidos são 'ReadWrite' e 'Somente leitura'.</value></data>
|
||||
<data name="ConnectionServiceConnectionCanceled"><value>Conexão cancelada</value></data>
|
||||
<data name="ConnectionParamsValidateNullOwnerUri"><value>OwnerUri não pode ser nulo ou vazio</value></data>
|
||||
<data name="ConnectionParamsValidateNullConnection"><value>Objeto de detalhes de Conexão não pode ser nulo</value></data>
|
||||
<data name="ConnectionParamsValidateNullServerName"><value>ServerName não pode ser nulo ou vazio</value></data>
|
||||
<data name="ConnectionParamsValidateNullSqlAuth"><value>{0} não pode ser nulo ou vazio quando estiver usando autenticação SqlLogin</value></data>
|
||||
<data name="QueryServiceCancelAlreadyCompleted"><value>A consulta já foi concluída, ela não pode ser cancelada</value></data>
|
||||
<data name="QueryServiceCancelDisposeFailed"><value>Consulta cancelada com êxito, Falha ao descartar a consulta. Proprietário do URI não encontrado.</value></data>
|
||||
<data name="QueryServiceQueryCancelled"><value>Consulta foi cancelada pelo usuário</value></data>
|
||||
<data name="QueryServiceSubsetBatchNotCompleted"><value>O lote ainda não foi concluído.</value></data>
|
||||
<data name="QueryServiceSubsetBatchOutOfRange"><value>Índice de lote não pode ser menor que 0 ou maior que o número de lotes</value></data>
|
||||
<data name="QueryServiceSubsetResultSetOutOfRange"><value>Índice do conjunto de resultados não pode ser menor que 0 ou maior que o número do conjuntos de resultados</value></data>
|
||||
<data name="QueryServiceDataReaderByteCountInvalid"><value>Número máximo de bytes a serem retornados deve ser maior que zero</value></data>
|
||||
<data name="QueryServiceDataReaderCharCountInvalid"><value>Número máximo de caracteres a serem retornados deve ser maior que zero</value></data>
|
||||
<data name="QueryServiceDataReaderXmlCountInvalid"><value>Número máximo de bytes XML a serem retornados deve ser maior que zero</value></data>
|
||||
<data name="QueryServiceFileWrapperWriteOnly"><value>Método de acesso não pode ser somente gravação</value></data>
|
||||
<data name="QueryServiceFileWrapperNotInitialized"><value>FileStreamWrapper deve ser inicializado antes de executar operações</value></data>
|
||||
<data name="QueryServiceFileWrapperReadOnly"><value>Este FileStreamWrapper não pode ser usado para gravação</value></data>
|
||||
<data name="QueryServiceAffectedOneRow"><value>(1 linha afetada)</value></data>
|
||||
<data name="QueryServiceAffectedRows"><value>({0} linhas afetadas)</value></data>
|
||||
<data name="QueryServiceCompletedSuccessfully"><value>Comandos concluídos com sucesso.</value></data>
|
||||
<data name="QueryServiceErrorFormat"><value>Msg {0}, Nível {1}, Estado {2}, Linha {3} {4} {5}</value></data>
|
||||
<data name="QueryServiceQueryFailed"><value>Falha na consulta: {0}</value></data>
|
||||
<data name="QueryServiceColumnNull"><value>(Nenhum nome de coluna)</value></data>
|
||||
<data name="QueryServiceRequestsNoQuery"><value>A consulta solicitada não existe.</value></data>
|
||||
<data name="QueryServiceQueryInvalidOwnerUri"><value>Este editor não está conectado a um banco de dados</value></data>
|
||||
<data name="QueryServiceQueryInProgress"><value>Uma consulta já está em andamento para esta sessão do editor. Favor cancelar esta consulta ou aguardar a sua conclusão</value></data>
|
||||
<data name="QueryServiceMessageSenderNotSql"><value>Remetente do evento OnInfoMessage deve ser um SqlConnection</value></data>
|
||||
<data name="QueryServiceSaveAsResultSetNotComplete"><value>Resultado não pode ser salvo até que seja concluída a execução da consulta</value></data>
|
||||
<data name="QueryServiceSaveAsMiscStartingError"><value>Ocorreu um erro interno ao iniciar tarefa de salvamento</value></data>
|
||||
<data name="QueryServiceSaveAsInProgress"><value>Uma solicitação de salvamento para o mesmo caminho está em andamento</value></data>
|
||||
<data name="QueryServiceSaveAsFail"><value>Falha ao salvar {0}: {1}</value></data>
|
||||
<data name="QueryServiceResultSetNotRead"><value>Não é possível ler o subconjunto, a menos que os resultados tenham sido lidos do servidor</value></data>
|
||||
<data name="QueryServiceResultSetStartRowOutOfRange"><value>Linha de início não pode ser menor que 0 ou maior que o número de linhas no conjunto de resultados</value></data>
|
||||
<data name="QueryServiceResultSetRowCountOutOfRange"><value>Contagem de linhas deve ser um inteiro positivo</value></data>
|
||||
<data name="QueryServiceResultSetNoColumnSchema"><value>Não foi possível recuperar o esquema de colunas para o conjunto de resultados</value></data>
|
||||
<data name="QueryServiceExecutionPlanNotFound"><value>Não foi possível recuperar um plano de execução do conjunto de resultados</value></data>
|
||||
<data name="PeekDefinitionAzureError"><value>Esse recurso não é atualmente suportado no banco de dados de SQL Azure e Data Warehouse: {0}</value></data>
|
||||
<data name="PeekDefinitionError"><value>Ocorreu um erro inesperado durante a execução da inspeção da definição:</value></data>
|
||||
<data name="PeekDefinitionNoResultsError"><value>Nenhum resultado foi encontrado.</value></data>
|
||||
<data name="PeekDefinitionDatabaseError"><value>Nenhum objeto de banco de dados foi recuperado.</value></data>
|
||||
<data name="PeekDefinitionNotConnectedError"><value>Favor conectar-se a um servidor.</value></data>
|
||||
<data name="PeekDefinitionTimedoutError"><value>Tempo limite da operação esgotado.</value></data>
|
||||
<data name="PeekDefinitionTypeNotSupportedError"><value>Este tipo de objeto não é suportado atualmente por esse recurso.</value></data>
|
||||
<data name="WorkspaceServicePositionLineOutOfRange"><value>Posição está fora do intervalo de linhas do arquivo</value></data>
|
||||
<data name="WorkspaceServicePositionColumnOutOfRange"><value>A posição está fora do intervalo de colunas para linha {0}</value></data>
|
||||
<data name="WorkspaceServiceBufferPositionOutOfOrder"><value>Posição inicial ({0}, {1}) deve vir antes ou ser igual a posição final ({2}, {3})</value></data>
|
||||
<data name="EE_BatchSqlMessageNoProcedureInfo"><value>Msg {0}, Nível {1}, Estado {2}, Linha {3}</value></data>
|
||||
<data name="EE_BatchSqlMessageWithProcedureInfo"><value>Msg {0}, Nível {1}, Estado {2}, Procedimento {3}, Linha {4}</value></data>
|
||||
<data name="EE_BatchSqlMessageNoLineInfo"><value>Msg {0}, Nível {1}, Estado {2}</value></data>
|
||||
<data name="EE_BatchError_Exception"><value>Ocorreu um erro durante o processamento do lote. A mensagem de erro é: {0}</value></data>
|
||||
<data name="EE_BatchExecutionInfo_RowsAffected"><value>({0} linhas afetadas)</value></data>
|
||||
<data name="EE_ExecutionNotYetCompleteError"><value>Execução anterior ainda não foi concluída.</value></data>
|
||||
<data name="EE_ScriptError_Error"><value>Ocorreu um erro de script.</value></data>
|
||||
<data name="EE_ScriptError_ParsingSyntax"><value>Sintaxe incorreta foi encontrada enquanto {0} estava sendo analisado.</value></data>
|
||||
<data name="EE_ScriptError_FatalError"><value>Ocorreu um erro fatal.</value></data>
|
||||
<data name="EE_ExecutionInfo_FinalizingLoop"><value>Execução concluída {0} vezes...</value></data>
|
||||
<data name="EE_ExecutionInfo_QueryCancelledbyUser"><value>Você cancelou a consulta.</value></data>
|
||||
<data name="EE_BatchExecutionError_Halting"><value>Ocorreu um erro enquanto o lote estava sendo executado.</value></data>
|
||||
<data name="EE_BatchExecutionError_Ignoring"><value>Ocorreu um erro enquanto o lote estava sendo executado, mas o erro foi ignorado.</value></data>
|
||||
<data name="EE_ExecutionInfo_InitializingLoop"><value>Beginning execution loop</value></data>
|
||||
<data name="EE_ExecutionError_CommandNotSupported"><value>Comando {0} não é suportado.</value></data>
|
||||
<data name="EE_ExecutionError_VariableNotFound"><value>A variável {0} não pôde ser encontrada.</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineError"><value>Erro de execução de SQL: {0}</value></data>
|
||||
<data name="BatchParserWrapperExecutionError"><value>Execução do pacote do analisador de lotes: {0} encontrado... na linha {1}: {2} Descrição: {3} </value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchMessage"><value>Mensagem recebida do motor de execução do pacote do analisador de lotes: Mensagem: {0} Mensagem detalhada: {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetProcessing"><value>Processando o conjunto de resultados no motor de execução do pacote do analisador de lotes: DataReader.FieldCount: {0} DataReader.RecordsAffected: {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetFinished"><value>Execução do conjunto de resultados do motor de execução de pacotes do analisador de lotes terminada.</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchCancelling"><value>Cancelando execução do conjunto de resultados do motor de execução de pacotes do analisador de lotes.</value></data>
|
||||
<data name="EE_ScriptError_Warning"><value>Aviso de script.</value></data>
|
||||
<data name="TroubleshootingAssistanceMessage"><value>Para obter mais informações sobre esse erro, consulte os tópicos de solução de problemas na documentação do produto.</value></data>
|
||||
<data name="BatchParser_CircularReference"><value>Arquivo '{0}' incluído recursivamente.</value></data>
|
||||
<data name="BatchParser_CommentNotTerminated"><value>Sem marca de comentário final ' * /'.</value></data>
|
||||
<data name="BatchParser_StringNotTerminated"><value>Aspas não fechadas depois da sequência de caracteres.</value></data>
|
||||
<data name="BatchParser_IncorrectSyntax"><value>Sintaxe incorreta foi encontrada enquanto {0} estava sendo analisado.</value></data>
|
||||
<data name="BatchParser_VariableNotDefined"><value>A variável {0} não está definida.</value></data>
|
||||
<data name="TestLocalizationConstant"><value>teste</value></data>
|
||||
<data name="ErrorEmptyStringReplacement"><value>Substituição de uma sequência vazia por uma cadeia de caracteres vazia.</value></data>
|
||||
<data name="EditDataSessionNotFound"><value>Sessão de edição não existe.</value></data>
|
||||
<data name="EditDataQueryNotCompleted"><value>A consulta não completou a execução</value></data>
|
||||
<data name="EditDataQueryImproperResultSets"><value>A consulta não gerou exatamente um conjunto de resultados</value></data>
|
||||
<data name="EditDataFailedAddRow"><value>Falha ao adicionar uma nova linha ao cache de atualização</value></data>
|
||||
<data name="EditDataRowOutOfRange"><value>ID de linha de entrada fora da faixa de linhas no cache de edição</value></data>
|
||||
<data name="EditDataUpdatePending"><value>Uma atualização está ainda pendente para esta linha e deve ser revertida antes</value></data>
|
||||
<data name="EditDataUpdateNotPending"><value>Não existem atualizações pendentes para o ID informado.</value></data>
|
||||
<data name="EditDataObjectMetadataNotFound"><value>Tabela ou view de metadados não pode ser encontrada</value></data>
|
||||
<data name="EditDataInvalidFormatBinary"><value>Formato inválido para coluna binária</value></data>
|
||||
<data name="EditDataInvalidFormatBoolean"><value>Colunas Booleanas devem possuir o número 1 ou 0 ou a string true ou false</value></data>
|
||||
<data name="EditDataCreateScriptMissingValue"><value>Um valor requerido para a célula está faltando</value></data>
|
||||
<data name="EditDataDeleteSetCell"><value>Uma exclusão está pendente para esta linha. Uma atualização desta célula não pode ser aplicada.</value></data>
|
||||
<data name="EditDataColumnIdOutOfRange"><value>Um ID de coluna deve estar no intervalo de colunas para a consulta</value></data>
|
||||
<data name="EditDataColumnCannotBeEdited"><value>Coluna não pode ser editada</value></data>
|
||||
<data name="EditDataColumnNoKeyColumns"><value>Não foram encontradas colunas chave</value></data>
|
||||
<data name="EditDataScriptFilePathNull"><value>Um nome de arquivo de saída deve ser fornecido</value></data>
|
||||
<data name="EditDataUnsupportedObjectType"><value>O objecto de banco de dados {0} não pode ser usado para edição.</value></data>
|
||||
<data name="ConnectionServiceDbErrorDefaultNotConnected"><value>A URI especificada '{0}' não tem uma conexão padrão</value></data>
|
||||
<data name="EditDataCommitInProgress"><value>Uma tarefa de gravação está em progresso. Favor aguardar o térnino.</value></data>
|
||||
<data name="SqlScriptFormatterDecimalMissingPrecision"><value>Coluna decimal não tem precisão numérica ou escala numérica</value></data>
|
||||
<data name="EditDataComputedColumnPlaceholder"><value><TBD></value></data>
|
||||
<data name="QueryServiceResultSetAddNoRows"><value>Não é possível adicionar linha ao buffer de resultados, o datareader não contém linhas</value></data>
|
||||
<data name="EditDataTimeOver24Hrs"><value>Os valores da coluna do tipo de dados TIME devem estar entre 00:00:00.0000000 e 23:59:59.9999999</value></data>
|
||||
<data name="EditDataNullNotAllowed"><value>Nulo não é permitido para esta coluna.</value></data>
|
||||
<data name="EditDataSessionAlreadyExists"><value>Sessão de edição já existe.</value></data>
|
||||
<data name="EditDataSessionNotInitialized"><value>Sessão de edição não foi inicializada</value></data>
|
||||
<data name="EditDataSessionAlreadyInitialized"><value>Sessão de edição já foi inicializada</value></data>
|
||||
<data name="EditDataSessionAlreadyInitializing"><value>Sessão de edição já foi inicializada ou está em processo de inicialização</value></data>
|
||||
<data name="EditDataQueryFailed"><value>A execução da consulta falhou, veja as mensagens para detalhes</value></data>
|
||||
<data name="EditDataFilteringNegativeLimit"><value>Limite de resultados não pode ser negativo</value></data>
|
||||
<data name="QueryServiceCellNull"><value>NULL</value></data>
|
||||
<data name="EditDataMetadataObjectNameRequired"><value>O nome do objeto deve ser fornecido.</value></data>
|
||||
<data name="EditDataMetadataTooManyIdentifiers"><value>O servidor ou banco de dados especificado não é suportado.</value></data>
|
||||
<data name="EditDataMetadataNotExtended"><value>Metadados da tabela não possuem propriedades extendidas</value></data>
|
||||
<data name="EditDataObjectNotFound"><value>Tabela ou view requisitada para edição não foi encontrada</value></data>
|
||||
<data name="TreeNodeError"><value>Erro expandindo: {0}</value></data>
|
||||
<data name="ServerNodeConnectionError"><value>Erro conectando a {0}</value></data>
|
||||
<data name="SchemaHierarchy_Aggregates"><value>Agregados</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoles"><value>Funcões de Servidor</value></data>
|
||||
<data name="SchemaHierarchy_ApplicationRoles"><value>Funções de Aplicação</value></data>
|
||||
<data name="SchemaHierarchy_Assemblies"><value>Assemblies</value></data>
|
||||
<data name="SchemaHierarchy_AssemblyFiles"><value>Arquivos de Assemblies</value></data>
|
||||
<data name="SchemaHierarchy_AsymmetricKeys"><value>Chaves Assimétricas</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAsymmetricKeys"><value>Chaves Assimétricas</value></data>
|
||||
<data name="SchemaHierarchy_DataCompressionOptions"><value>Opções de Compressão de Dados</value></data>
|
||||
<data name="SchemaHierarchy_Certificates"><value>Certificados</value></data>
|
||||
<data name="SchemaHierarchy_FileTables"><value>Tabelas de Arquivos</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseCertificates"><value>Certificados</value></data>
|
||||
<data name="SchemaHierarchy_CheckConstraints"><value>Verificação de Restrições</value></data>
|
||||
<data name="SchemaHierarchy_Columns"><value>Colunas</value></data>
|
||||
<data name="SchemaHierarchy_Constraints"><value>Restrições</value></data>
|
||||
<data name="SchemaHierarchy_Contracts"><value>Contratos</value></data>
|
||||
<data name="SchemaHierarchy_Credentials"><value>Credenciais</value></data>
|
||||
<data name="SchemaHierarchy_ErrorMessages"><value>Mensagens de Erro</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoleMembership"><value>Adesão às Funções de Servidor</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseOptions"><value>Opções de Banco de Dados</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseRoles"><value>Funções de Bancos de Dados</value></data>
|
||||
<data name="SchemaHierarchy_RoleMemberships"><value>Adesão às Funções</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseTriggers"><value>Gatilhos de Bancos de Dados
|
||||
</value></data>
|
||||
<data name="SchemaHierarchy_DefaultConstraints"><value>Restrições Padrão</value></data>
|
||||
<data name="SchemaHierarchy_Defaults"><value>Padrões</value></data>
|
||||
<data name="SchemaHierarchy_Sequences"><value>Sequências</value></data>
|
||||
<data name="SchemaHierarchy_Endpoints"><value>Pontos finais</value></data>
|
||||
<data name="SchemaHierarchy_EventNotifications"><value>Notificações de Eventos</value></data>
|
||||
<data name="SchemaHierarchy_ServerEventNotifications"><value>Notificações de Eventos de Servidor</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedProperties"><value>Propriedades Extendidas</value></data>
|
||||
<data name="SchemaHierarchy_FileGroups"><value>Grupos de Arquivos</value></data>
|
||||
<data name="SchemaHierarchy_ForeignKeys"><value>Chaves Estrangeiras</value></data>
|
||||
<data name="SchemaHierarchy_FullTextCatalogs"><value>Catálogos Full-Text</value></data>
|
||||
<data name="SchemaHierarchy_FullTextIndexes"><value>Índices Full-Text</value></data>
|
||||
<data name="SchemaHierarchy_Functions"><value>Funções</value></data>
|
||||
<data name="SchemaHierarchy_Indexes"><value>Índices</value></data>
|
||||
<data name="SchemaHierarchy_InlineFunctions"><value>Funções em Linha</value></data>
|
||||
<data name="SchemaHierarchy_Keys"><value>Chaves</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServers"><value>Servidores vinculados</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServerLogins"><value>Logins de servidores vinculados</value></data>
|
||||
<data name="SchemaHierarchy_Logins"><value>Logins</value></data>
|
||||
<data name="SchemaHierarchy_MasterKey"><value>Master key</value></data>
|
||||
<data name="SchemaHierarchy_MasterKeys"><value>Master Keys</value></data>
|
||||
<data name="SchemaHierarchy_MessageTypes"><value>Tipos de Mensagens</value></data>
|
||||
<data name="SchemaHierarchy_MultiSelectFunctions"><value>Funções de Valor de Tabelas</value></data>
|
||||
<data name="SchemaHierarchy_Parameters"><value>Parâmetros</value></data>
|
||||
<data name="SchemaHierarchy_PartitionFunctions"><value>Funções de Partição</value></data>
|
||||
<data name="SchemaHierarchy_PartitionSchemes"><value>Esquemas de Partição</value></data>
|
||||
<data name="SchemaHierarchy_Permissions"><value>Permissões</value></data>
|
||||
<data name="SchemaHierarchy_PrimaryKeys"><value>Chaves Primárias</value></data>
|
||||
<data name="SchemaHierarchy_Programmability"><value>Programabilidade</value></data>
|
||||
<data name="SchemaHierarchy_Queues"><value>Filas</value></data>
|
||||
<data name="SchemaHierarchy_RemoteServiceBindings"><value>Ligações de Serviço Remoto</value></data>
|
||||
<data name="SchemaHierarchy_ReturnedColumns"><value>Colunas Retornadas</value></data>
|
||||
<data name="SchemaHierarchy_Roles"><value>Funções</value></data>
|
||||
<data name="SchemaHierarchy_Routes"><value>Rotas</value></data>
|
||||
<data name="SchemaHierarchy_Rules"><value>Regras</value></data>
|
||||
<data name="SchemaHierarchy_Schemas"><value>Esquemas</value></data>
|
||||
<data name="SchemaHierarchy_Security"><value>Segurança</value></data>
|
||||
<data name="SchemaHierarchy_ServerObjects"><value>Objetos de Servidor</value></data>
|
||||
<data name="SchemaHierarchy_Management"><value>Gerenciamento</value></data>
|
||||
<data name="SchemaHierarchy_ServerTriggers"><value>Gatilhos</value></data>
|
||||
<data name="SchemaHierarchy_ServiceBroker"><value>Service Broker</value></data>
|
||||
<data name="SchemaHierarchy_Services"><value>Serviços</value></data>
|
||||
<data name="SchemaHierarchy_Signatures"><value>Assinaturas</value></data>
|
||||
<data name="SchemaHierarchy_LogFiles"><value>Arquivos de Log</value></data>
|
||||
<data name="SchemaHierarchy_Statistics"><value>Estatísticas</value></data>
|
||||
<data name="SchemaHierarchy_Storage"><value>Armazenamento</value></data>
|
||||
<data name="SchemaHierarchy_StoredProcedures"><value>Stored Procedures</value></data>
|
||||
<data name="SchemaHierarchy_SymmetricKeys"><value>Chaves Simétricas</value></data>
|
||||
<data name="SchemaHierarchy_Synonyms"><value>Sinônimos</value></data>
|
||||
<data name="SchemaHierarchy_Tables"><value>Tabelas</value></data>
|
||||
<data name="SchemaHierarchy_Triggers"><value>Gatilhos</value></data>
|
||||
<data name="SchemaHierarchy_Types"><value>Tipos</value></data>
|
||||
<data name="SchemaHierarchy_UniqueKeys"><value>Chaves Únicas</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedDataTypes"><value>Tipos de Dados Definidos pelo Usuário</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTypes"><value>Tipos Definidos pelo Usuário (CLR)</value></data>
|
||||
<data name="SchemaHierarchy_Users"><value>Usuários</value></data>
|
||||
<data name="SchemaHierarchy_Views"><value>Visualizações</value></data>
|
||||
<data name="SchemaHierarchy_XmlIndexes"><value>Índices XML</value></data>
|
||||
<data name="SchemaHierarchy_XMLSchemaCollections"><value>Coleções de Esquemas XML</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTableTypes"><value>Tipos de Tabelas Definidas pelo Usuário</value></data>
|
||||
<data name="SchemaHierarchy_FilegroupFiles"><value>Arquivos</value></data>
|
||||
<data name="MissingCaption"><value>Título Faltando</value></data>
|
||||
<data name="SchemaHierarchy_BrokerPriorities"><value>Prioridades do Agente</value></data>
|
||||
<data name="SchemaHierarchy_CryptographicProviders"><value>Provedores de Criptografia</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAuditSpecifications"><value>Especificações de Auditoria de Banco de Dados</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseEncryptionKeys"><value>Chaves de Criptografia de Banco de Dados</value></data>
|
||||
<data name="SchemaHierarchy_EventSessions"><value>Sessões de Evento</value></data>
|
||||
<data name="SchemaHierarchy_FullTextStopLists"><value>Listas de Parada Full Text</value></data>
|
||||
<data name="SchemaHierarchy_ResourcePools"><value>Pool de Recursos</value></data>
|
||||
<data name="SchemaHierarchy_ServerAudits"><value>Auditorias</value></data>
|
||||
<data name="SchemaHierarchy_ServerAuditSpecifications"><value>Especificações de Auditoria de Servidor</value></data>
|
||||
<data name="SchemaHierarchy_SpatialIndexes"><value>Índices Espaciais</value></data>
|
||||
<data name="SchemaHierarchy_WorkloadGroups"><value>Grupos de Trabalho</value></data>
|
||||
<data name="SchemaHierarchy_SqlFiles"><value>Arquivos SQL</value></data>
|
||||
<data name="SchemaHierarchy_ServerFunctions"><value>Funções de Servidor</value></data>
|
||||
<data name="SchemaHierarchy_SqlType"><value>Tipo SQL</value></data>
|
||||
<data name="SchemaHierarchy_ServerOptions"><value>Opções de Servidor</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseDiagrams"><value>Diagramas de Banco de Dados</value></data>
|
||||
<data name="SchemaHierarchy_SystemTables"><value>Tabelas do Sistema</value></data>
|
||||
<data name="SchemaHierarchy_Databases"><value>Bancos de Dados</value></data>
|
||||
<data name="SchemaHierarchy_SystemContracts"><value>Contratos do Sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemDatabases"><value>Bancos de Dados do Sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemMessageTypes"><value>Tipos de Mensagens do Sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemQueues"><value>Filas do Sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemServices"><value>Serviços do Sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemStoredProcedures"><value>Stored Procedures do Sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemViews"><value>Visualizações do Sistema</value></data>
|
||||
<data name="SchemaHierarchy_DataTierApplications"><value>Aplicações da Camada de Dados</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedStoredProcedures"><value>Stored Procedures Estendidas</value></data>
|
||||
<data name="SchemaHierarchy_SystemAggregateFunctions"><value>Funções Agregadas</value></data>
|
||||
<data name="SchemaHierarchy_SystemApproximateNumerics"><value>Numéricos Aproximados</value></data>
|
||||
<data name="SchemaHierarchy_SystemBinaryStrings"><value>Cadeias de Caracteres Binárias</value></data>
|
||||
<data name="SchemaHierarchy_SystemCharacterStrings"><value>Cadeias de Caracteres</value></data>
|
||||
<data name="SchemaHierarchy_SystemCLRDataTypes"><value>Tipos de Dados CLR</value></data>
|
||||
<data name="SchemaHierarchy_SystemConfigurationFunctions"><value>Funções de Configuração</value></data>
|
||||
<data name="SchemaHierarchy_SystemCursorFunctions"><value>Funções de Cursor</value></data>
|
||||
<data name="SchemaHierarchy_SystemDataTypes"><value>Tipos de Dados do Sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTime"><value>Data e Hora</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTimeFunctions"><value>Funções de Data e Hora</value></data>
|
||||
<data name="SchemaHierarchy_SystemExactNumerics"><value>Numéricos Exatos</value></data>
|
||||
<data name="SchemaHierarchy_SystemFunctions"><value>Funções do Sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemHierarchyIdFunctions"><value>Funções de ID de Hierarquia</value></data>
|
||||
<data name="SchemaHierarchy_SystemMathematicalFunctions"><value>Funções Matemáticas</value></data>
|
||||
<data name="SchemaHierarchy_SystemMetadataFunctions"><value>Funções de Metadados</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherDataTypes"><value>Outros tipos de Dados</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherFunctions"><value>Outras Funções</value></data>
|
||||
<data name="SchemaHierarchy_SystemRowsetFunctions"><value>Funções de Conjuntos de Linhas</value></data>
|
||||
<data name="SchemaHierarchy_SystemSecurityFunctions"><value>Funções de Segurança</value></data>
|
||||
<data name="SchemaHierarchy_SystemSpatialDataTypes"><value>Tipos de Dados Espaciais</value></data>
|
||||
<data name="SchemaHierarchy_SystemStringFunctions"><value>Funções de Cadeias de Caracteres</value></data>
|
||||
<data name="SchemaHierarchy_SystemSystemStatisticalFunctions"><value>Funções Estatísticas do Sistema</value></data>
|
||||
<data name="SchemaHierarchy_SystemTextAndImageFunctions"><value>Funções de Texto e Imagem</value></data>
|
||||
<data name="SchemaHierarchy_SystemUnicodeCharacterStrings"><value>Cadeias de Caracteres Unicode</value></data>
|
||||
<data name="SchemaHierarchy_AggregateFunctions"><value>Funções Agregadas</value></data>
|
||||
<data name="SchemaHierarchy_ScalarValuedFunctions"><value>Funções de Valores Escalares</value></data>
|
||||
<data name="SchemaHierarchy_TableValuedFunctions"><value>Funções de Valores Baseadas em Tabelas</value></data>
|
||||
<data name="SchemaHierarchy_SystemExtendedStoredProcedures"><value>Stored Procedures do Sistema Estendidas </value></data>
|
||||
<data name="SchemaHierarchy_BuiltInType"><value>Tipos Intrínsecos</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInServerRole"><value>Funções de Servidor Intrínsecas</value></data>
|
||||
<data name="SchemaHierarchy_UserWithPassword"><value>Usuário com Senha</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyList"><value>Pesquisar Lista de Propriedades</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPolicies"><value>Políticas de Segurança</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPredicates"><value>Predicados de Segurança</value></data>
|
||||
<data name="SchemaHierarchy_ServerRole"><value>Função de Servidor</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyLists"><value>Pesquisar Listas de Propriedades</value></data>
|
||||
<data name="SchemaHierarchy_ColumnStoreIndexes"><value>Índices de Colunas</value></data>
|
||||
<data name="SchemaHierarchy_TableTypeIndexes"><value>Índices de Tipos de Tabelas</value></data>
|
||||
<data name="SchemaHierarchy_SelectiveXmlIndexes"><value>Índices XML Seletivos</value></data>
|
||||
<data name="SchemaHierarchy_XmlNamespaces"><value>Namespaces XML</value></data>
|
||||
<data name="SchemaHierarchy_XmlTypedPromotedPaths"><value>Caminhos Promovidos de Tipos XML</value></data>
|
||||
<data name="SchemaHierarchy_SqlTypedPromotedPaths"><value>Caminhos Promovidos de Tipos T-SQL</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseScopedCredentials"><value>Credenciais de Escopo de Banco de Dados</value></data>
|
||||
<data name="SchemaHierarchy_ExternalDataSources"><value>Fontes de Dados Externas</value></data>
|
||||
<data name="SchemaHierarchy_ExternalFileFormats"><value>Formatos de Arquivos Externos</value></data>
|
||||
<data name="SchemaHierarchy_ExternalResources"><value>Recursos Externos</value></data>
|
||||
<data name="SchemaHierarchy_ExternalTables"><value>Tabelas Externas</value></data>
|
||||
<data name="SchemaHierarchy_AlwaysEncryptedKeys"><value>Chaves Sempre Criptografadas</value></data>
|
||||
<data name="SchemaHierarchy_ColumnMasterKeys"><value>Chaves Mestras de Colunas</value></data>
|
||||
<data name="SchemaHierarchy_ColumnEncryptionKeys"><value>Chaves de Criptografia de Colunas</value></data>
|
||||
<data name="SchemaHierarchy_Server"><value>Servidor</value></data>
|
||||
<data name="ScriptingParams_ConnectionString_Property_Invalid"><value>Erro ao analisar a propriedade ScriptingParams.ConnectionString.</value></data>
|
||||
<data name="ScriptingParams_FilePath_Property_Invalid"><value>Diretório inválido especificado pela propriedade ScriptingParams.FilePath.</value></data>
|
||||
<data name="ScriptingListObjectsCompleteParams_ConnectionString_Property_Invalid"><value>Erro ao analisar a propriedade ScriptingListObjectsCompleteParams.ConnectionString.</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterLabelFormatString"><value>{0} ({1}, {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterNoDefaultLabel"><value>Nenhum padrão</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputLabel"><value>Entrada</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputLabel"><value>Entrada/Saída</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputReadOnlyLabel"><value>Entrada/SomenteLeitura</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputReadOnlyLabel"><value>Entrada/Saída/SomenteLeitura</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterDefaultLabel"><value>Padrão</value></data>
|
||||
<data name="SchemaHierarchy_NullColumn_Label"><value>nulo</value></data>
|
||||
<data name="SchemaHierarchy_NotNullColumn_Label"><value>não nulo</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithType"><value>{0} ({1}, {2})</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithoutType"><value>{0} ({1})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithType"><value>{0} ({1} Computado, {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithoutType"><value>{0} ({1}Computado)</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithoutType"><value>{0} (Conjunto de Colunas, {1})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithType"><value>{0} (Conjunto de Colunas, {1}{2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithTypeAndKeyString"><value>{0} (Conjunto de Colunas, {1}, {2}, {3})</value></data>
|
||||
<data name="UniqueIndex_LabelPart"><value>Exclusivo</value></data>
|
||||
<data name="NonUniqueIndex_LabelPart"><value>Não Exclusivo</value></data>
|
||||
<data name="ClusteredIndex_LabelPart"><value>Clusterizado</value></data>
|
||||
<data name="NonClusteredIndex_LabelPart"><value>Não Clusterizado</value></data>
|
||||
<data name="History_LabelPart"><value>Histórico</value></data>
|
||||
<data name="SystemVersioned_LabelPart"><value>Versionado pelo sistema</value></data>
|
||||
<data name="unavailable"><value>Indisponível</value></data>
|
||||
<data name="filegroup_dialog_defaultFilegroup"><value>Grupo de arquivos padrão atual: {0}</value></data>
|
||||
<data name="filegroup_dialog_title"><value>Novo Grupo de Arquivos para {0}</value></data>
|
||||
<data name="filegroups_default"><value>Padrão</value></data>
|
||||
<data name="filegroups_files"><value>Arquivos</value></data>
|
||||
<data name="filegroups_name"><value>Nome</value></data>
|
||||
<data name="filegroups_readonly"><value>Somente Leitura</value></data>
|
||||
<data name="general_autogrowth"><value>Auto crescimento / Tamanho máximo</value></data>
|
||||
<data name="general_builderText"><value>...</value></data>
|
||||
<data name="general_default"><value><padrão></value></data>
|
||||
<data name="general_fileGroup"><value>Grupo de Arquivos</value></data>
|
||||
<data name="general_fileName"><value>Nome Lógico</value></data>
|
||||
<data name="general_fileType"><value>Tipo de Arquivo</value></data>
|
||||
<data name="general_initialSize"><value>Tamanho Inicial (MB)</value></data>
|
||||
<data name="general_newFilegroup"><value><novo grupo de arquivos></value></data>
|
||||
<data name="general_path"><value>Caminho</value></data>
|
||||
<data name="general_physicalFileName"><value>Nome do Arquivo</value></data>
|
||||
<data name="general_rawDevice"><value><dispositivo bruto></value></data>
|
||||
<data name="general_recoveryModel_bulkLogged"><value>Logado em massa</value></data>
|
||||
<data name="general_recoveryModel_full"><value>Completo</value></data>
|
||||
<data name="general_recoveryModel_simple"><value>Simples</value></data>
|
||||
<data name="general_titleSearchOwner"><value>Selecionar o proprietário do banco de dados</value></data>
|
||||
<data name="prototype_autogrowth_disabled"><value>Nenhum</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByMB"><value>Por {0} MB, limitado a {1} MB</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByPercent"><value>Por {0}%, Limitado a {1} mb</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByMB"><value>Por {0} MB, Ilimitado</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByPercent"><value>Por {0}%, Ilimitado</value></data>
|
||||
<data name="prototype_autogrowth_unlimitedfilestream"><value>Ilimitado</value></data>
|
||||
<data name="prototype_autogrowth_limitedfilestream"><value>Limitado a {0} MB</value></data>
|
||||
<data name="prototype_db_category_automatic"><value>Automático</value></data>
|
||||
<data name="prototype_db_category_servicebroker"><value>Service Broker</value></data>
|
||||
<data name="prototype_db_category_collation"><value>Agrupamento</value></data>
|
||||
<data name="prototype_db_category_cursor"><value>Cursor</value></data>
|
||||
<data name="prototype_db_category_misc"><value>Diversos</value></data>
|
||||
<data name="prototype_db_category_recovery"><value>Recuperação</value></data>
|
||||
<data name="prototype_db_category_state"><value>Estado</value></data>
|
||||
<data name="prototype_db_prop_ansiNullDefault"><value>Padrão ANSI NULL</value></data>
|
||||
<data name="prototype_db_prop_ansiNulls"><value>ANSI NULLS Habilitado</value></data>
|
||||
<data name="prototype_db_prop_ansiPadding"><value>Preenchimento ANSI habilitado </value></data>
|
||||
<data name="prototype_db_prop_ansiWarnings"><value>ANSI Warnings Habilitados</value></data>
|
||||
<data name="prototype_db_prop_arithabort"><value>Arithmetic Abortar habilitado </value></data>
|
||||
<data name="prototype_db_prop_autoClose"><value>Fechamento automático</value></data>
|
||||
<data name="prototype_db_prop_autoCreateStatistics"><value>Criar Estatísticas Automaticamente</value></data>
|
||||
<data name="prototype_db_prop_autoShrink"><value>Reduzir Automaticamente</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatistics"><value>Estatísticas Atualizadas Automaticamente</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatisticsAsync"><value>Atualizar estatísticas automaticamente de forma assíncrona</value></data>
|
||||
<data name="prototype_db_prop_caseSensitive"><value>Sensível à Caixa</value></data>
|
||||
<data name="prototype_db_prop_closeCursorOnCommit"><value>Fechar Cursor na Confirmação Habilitado</value></data>
|
||||
<data name="prototype_db_prop_collation"><value>Agrupamento</value></data>
|
||||
<data name="prototype_db_prop_concatNullYieldsNull"><value>Concatenar Nulo Produz Nulo</value></data>
|
||||
<data name="prototype_db_prop_databaseCompatibilityLevel"><value>Nível de Compatibilidade do Banco de Dados</value></data>
|
||||
<data name="prototype_db_prop_databaseState"><value>Estado do Banco de Dados</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor"><value>Cursor Padrão</value></data>
|
||||
<data name="prototype_db_prop_fullTextIndexing"><value>Indexação Full-Text Habilitada</value></data>
|
||||
<data name="prototype_db_prop_numericRoundAbort"><value>Anular arredondamento numérico.</value></data>
|
||||
<data name="prototype_db_prop_pageVerify"><value>Verificação de Página</value></data>
|
||||
<data name="prototype_db_prop_quotedIdentifier"><value>Identificadores Entre Aspas Habilitados</value></data>
|
||||
<data name="prototype_db_prop_readOnly"><value>Banco de Dados Somente Leitura</value></data>
|
||||
<data name="prototype_db_prop_recursiveTriggers"><value>Gatilhos Recursivos Habilitados</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess"><value>Acesso Restrito</value></data>
|
||||
<data name="prototype_db_prop_selectIntoBulkCopy"><value>Selecionar Cópia Into/Em Massa</value></data>
|
||||
<data name="prototype_db_prop_honorBrokerPriority"><value>Respeitar a Prioridade do Broker</value></data>
|
||||
<data name="prototype_db_prop_serviceBrokerGuid"><value>Identificador de agente de serviço</value></data>
|
||||
<data name="prototype_db_prop_brokerEnabled"><value>Agente habilitado</value></data>
|
||||
<data name="prototype_db_prop_truncateLogOnCheckpoint"><value>Truncar o Log no Ponto de Verificação</value></data>
|
||||
<data name="prototype_db_prop_dbChaining"><value>Encadeamento de Propriedades de Bancos de Dados Habilitado</value></data>
|
||||
<data name="prototype_db_prop_trustworthy"><value>Confiável</value></data>
|
||||
<data name="prototype_db_prop_dateCorrelationOptimization"><value>Otimizaçao da Correlação de Data Enabledprototype_db_prop_parameterization = Parametrização</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_forced"><value>Forçado</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_simple"><value>Simples</value></data>
|
||||
<data name="prototype_file_dataFile"><value>Dados ROWS</value></data>
|
||||
<data name="prototype_file_logFile"><value>LOG</value></data>
|
||||
<data name="prototype_file_filestreamFile"><value>Dados FILESTREAM</value></data>
|
||||
<data name="prototype_file_noFileGroup"><value>Não aplicável</value></data>
|
||||
<data name="prototype_file_defaultpathstring"><value><caminho padrão></value></data>
|
||||
<data name="title_openConnectionsMustBeClosed"><value>Conexões Abertas</value></data>
|
||||
<data name="warning_openConnectionsMustBeClosed"><value>Para modificar as propriedades do banco de dados, o SQL Server deve fechar todas as outras conexões ao banco de dados_ Tem certeza que você quer modificar as propriedades e fechar todas as outras conexões?</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_autoClosed"><value>AUTO_CLOSED</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_emergency"><value>EMERGÊNCIA</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_inaccessible"><value>INACESSÍVEL</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_normal"><value>NORMAL</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_offline"><value>OFF-LINE</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recovering"><value>RECUPERANDO</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recoveryPending"><value>RECUPERAÇÃO PENDENTE</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_restoring"><value>RESTAURANDO</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_shutdown"><value>DESLIGAMENTO</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_standby"><value>MODO DE ESPERA</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_suspect"><value>SUSPEITO</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_global"><value>GLOBAL</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_local"><value>LOCAL</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_multiple"><value>MULTI_USUÁRIO</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_restricted"><value>USUÁRIO_RESTRITO</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_single"><value>MONO_USUÁRIO</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_checksum"><value>SOMA DE VERIFICAÇÃO</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_none"><value>NENHUM</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_tornPageDetection"><value>TORN_PAGE_DETECTION</value></data>
|
||||
<data name="prototype_db_prop_varDecimalEnabled"><value>Formato de Armazenamento VarDecimal Habilitado</value></data>
|
||||
<data name="compatibilityLevel_katmai"><value>SQL Server 2008 (100)</value></data>
|
||||
<data name="prototype_db_prop_encryptionEnabled"><value>Criptografia Habilitada</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_off"><value>DESLIGADO</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_on"><value>LIGADO</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_primary"><value>PRIMÁRIO</value></data>
|
||||
<data name="error_db_prop_invalidleadingColumns"><value>Para a política de distribuição de HASH, o número de colunas hash principais é opcional, mas deve ser de 1 a 16 colunas </value></data>
|
||||
<data name="compatibilityLevel_denali"><value>SQL Server 2012 (110)</value></data>
|
||||
<data name="compatibilityLevel_sql14"><value>SQL Server 2014 (120)</value></data>
|
||||
<data name="compatibilityLevel_sql15"><value>SQL Server 2016 (130)</value></data>
|
||||
<data name="compatibilityLevel_sqlvNext"><value>SQL Server vNext (140)</value></data>
|
||||
<data name="general_containmentType_None"><value>Nenhum</value></data>
|
||||
<data name="general_containmentType_Partial"><value>Parcial</value></data>
|
||||
<data name="filegroups_filestreamFiles"><value>Arquivos FILESTREAM</value></data>
|
||||
<data name="prototype_file_noApplicableFileGroup"><value>Nenhum grupo de arquivos aplicável</value></data>
|
||||
<data name="DatabaseNotAccessible"><value>O banco de dados {0} não está acessível.</value></data>
|
||||
<data name="QueryServiceResultSetHasNoResults"><value>A consulta não tem resultado para retornar</value></data>
|
||||
<data name="QueryServiceResultSetTooLarge"><value>Conjunto de resultados tem muitas linhas para ser carregado com segurança</value></data>
|
||||
<data name="prototype_db_prop_parameterization"><value>Parametrização</value></data>
|
||||
<data name="ConflictWithNoRecovery"><value>Não é permitido especificar essa opção ao restaurar um backup com a opção NORECOVERY.</value></data>
|
||||
<data name="InvalidPathForDatabaseFile"><value>Caminho inválido para o arquivo de banco de dados: '{0}'</value></data>
|
||||
<data name="Log"><value>Log</value></data>
|
||||
<data name="RestorePlanFailed"><value>Falha ao criar o plano de restauração</value></data>
|
||||
<data name="RestoreNotSupported"><value>Restauração de banco de dados não é suportado</value></data>
|
||||
<data name="RestoreTaskName"><value>Restaurar o banco de dados</value></data>
|
||||
<data name="RestoreCopyOnly"><value>(Apenas cópia)</value></data>
|
||||
<data name="RestoreBackupSetComponent"><value>Componente</value></data>
|
||||
<data name="RestoreBackupSetType"><value>Tipo</value></data>
|
||||
<data name="RestoreBackupSetServer"><value>Servidor</value></data>
|
||||
<data name="RestoreBackupSetDatabase"><value>Banco de dados</value></data>
|
||||
<data name="RestoreBackupSetPosition"><value>Posição</value></data>
|
||||
<data name="RestoreBackupSetFirstLsn"><value>Primeiro LSN</value></data>
|
||||
<data name="RestoreBackupSetLastLsn"><value>Último LSN</value></data>
|
||||
<data name="RestoreBackupSetCheckpointLsn"><value>Checkpoint LSN</value></data>
|
||||
<data name="RestoreBackupSetFullLsn"><value>LSN completo</value></data>
|
||||
<data name="RestoreBackupSetStartDate"><value>Data de Início</value></data>
|
||||
<data name="RestoreBackupSetFinishDate"><value>Data de Término</value></data>
|
||||
<data name="RestoreBackupSetSize"><value>Tamanho</value></data>
|
||||
<data name="RestoreBackupSetUserName"><value>Nome do usuário</value></data>
|
||||
<data name="RestoreBackupSetExpiration"><value>Expiração</value></data>
|
||||
<data name="RestoreBackupSetName"><value>Nome</value></data>
|
||||
<data name="TheLastBackupTaken"><value>O último backup feito ({0})</value></data>
|
||||
<data name="BackupTaskName"><value>Backup do Banco de Dados</value></data>
|
||||
<data name="TaskInProgress"><value>Em andamento</value></data>
|
||||
<data name="TaskCompleted"><value>Concluído</value></data>
|
||||
<data name="ScriptTaskName"><value>Gerando script</value></data>
|
||||
<data name="ProfilerConnectionNotFound"><value>Conexão não encontrada</value></data>
|
||||
<data name="BackupPathIsFolderError"><value>O nome do arquivo especificado também é um nome de diretório: {0}</value></data>
|
||||
<data name="InvalidBackupPathError"><value>Não foi possível verificar a existência do local do arquivo de backup: {0}</value></data>
|
||||
<data name="InvalidPathError"><value>Não foi possível acessar o diretório especificado no servidor: {0}</value></data>
|
||||
<data name="NoBackupsetsToRestore"><value>Nenhum conjunto de backup selecionado para ser restaurado</value></data>
|
||||
<data name="NeverBackedUp"><value>Nunca</value></data>
|
||||
<data name="AzureSqlDbEdition"><value>Azure SQL DB</value></data>
|
||||
<data name="AzureSqlDwEdition"><value>Azure SQL Data Warehouse</value></data>
|
||||
<data name="AzureSqlStretchEdition"><value>Azure SQL Stretch Database</value></data>
|
||||
<data name="Error_InvalidDirectoryName"><value>Caminho {0} não é um diretório válido </value></data>
|
||||
<data name="Error_ExistingDirectoryName"><value>Já existe um arquivo com nome {1} para o diretório {0}</value></data>
|
||||
<data name="EditDataValueTooLarge"><value>Valor {0} é muito grande para caber em uma coluna do tipo {1}</value></data>
|
||||
</root>
|
||||
2005
src/Microsoft.SqlTools.CoreServices/Localization/sr.resx
Executable file
2005
src/Microsoft.SqlTools.CoreServices/Localization/sr.resx
Executable file
File diff suppressed because it is too large
Load Diff
483
src/Microsoft.SqlTools.CoreServices/Localization/sr.ru.resx
Normal file
483
src/Microsoft.SqlTools.CoreServices/Localization/sr.ru.resx
Normal file
@@ -0,0 +1,483 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype"><value>text/microsoft-resx</value></resheader><resheader name="version"><value>1.3</value></resheader><resheader name="reader"><value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><resheader name="writer"><value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><data name="ConnectionServiceConnectErrorNullParams"><value>Параметры подключения должны быть указаны, значение не может быть неопределенным (null)</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNullOwnerUri"><value>OwnerUri не может быть неопределенным или пустым</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNotConnected"><value>SpecifiedUri «{0}» не имеет существующего подключения</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidAuthType"><value>Значение «{0}» недопустимо для AuthenticationType. Ожидается значение «Integrated» или «SqlLogin».</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidIntent"><value>Значение «{0}» недопустимо для ApplicationIntent. Ожидается значение «ReadWrite» или «ReadOnly».</value></data>
|
||||
<data name="ConnectionServiceConnectionCanceled"><value>Подключение к серверу отменено.</value></data>
|
||||
<data name="ConnectionParamsValidateNullOwnerUri"><value>OwnerUri не может быть неопределенным или пустым</value></data>
|
||||
<data name="ConnectionParamsValidateNullConnection"><value>Параметры подключения не могут быть неопределенными</value></data>
|
||||
<data name="ConnectionParamsValidateNullServerName"><value>Имя сервера не может быть неопределенным или пустым</value></data>
|
||||
<data name="ConnectionParamsValidateNullSqlAuth"><value>{0} не может быть неопределенным или пустым при использовании проверки подлинности SqlLogin</value></data>
|
||||
<data name="QueryServiceCancelAlreadyCompleted"><value>Запрос уже был выполнен, отмена невозможна</value></data>
|
||||
<data name="QueryServiceCancelDisposeFailed"><value>Запрос успешно отменен, но удалить запрос не удалось. Владелец URI не найден.</value></data>
|
||||
<data name="QueryServiceQueryCancelled"><value>Выполнение запроса отменено пользователем</value></data>
|
||||
<data name="QueryServiceSubsetBatchNotCompleted"><value>Пакет еще не завершен</value></data>
|
||||
<data name="QueryServiceSubsetBatchOutOfRange"><value>Индекс пакета не может быть меньше нуля или больше числа пакетов</value></data>
|
||||
<data name="QueryServiceSubsetResultSetOutOfRange"><value>Индекс не может быть меньше нуля или больше количества записей в наборе</value></data>
|
||||
<data name="QueryServiceDataReaderByteCountInvalid"><value>Максимальное количество возвращаемых байтов должно быть больше нуля</value></data>
|
||||
<data name="QueryServiceDataReaderCharCountInvalid"><value>Максимальное количество возвращаемых символов должно быть больше нуля</value></data>
|
||||
<data name="QueryServiceDataReaderXmlCountInvalid"><value>Максимальное количество возвращаемых из XML байтов должно быть больше нуля</value></data>
|
||||
<data name="QueryServiceFileWrapperWriteOnly"><value>Метод доступа не может быть только для записи.</value></data>
|
||||
<data name="QueryServiceFileWrapperNotInitialized"><value>FileStreamWrapper должен быть инициализирован перед выполнением операций</value></data>
|
||||
<data name="QueryServiceFileWrapperReadOnly"><value>Этот экземпляр FileStreamWrapper не может быть использован для записи</value></data>
|
||||
<data name="QueryServiceAffectedOneRow"><value>(одна строка затронута)</value></data>
|
||||
<data name="QueryServiceAffectedRows"><value>({0} строк затронуто)</value></data>
|
||||
<data name="QueryServiceCompletedSuccessfully"><value>Выполнение команд успешно завершено.</value></data>
|
||||
<data name="QueryServiceErrorFormat"><value>Сообщение {0}, Уровень {1}, Состояние {2}, Строка {3}{4}{5}</value></data>
|
||||
<data name="QueryServiceQueryFailed"><value>Не удалось выполнить запрос: {0}</value></data>
|
||||
<data name="QueryServiceColumnNull"><value>(Нет имени столбца)</value></data>
|
||||
<data name="QueryServiceRequestsNoQuery"><value>Указанный запрос не найден</value></data>
|
||||
<data name="QueryServiceQueryInvalidOwnerUri"><value>Этот редактор не подключен к базе данных</value></data>
|
||||
<data name="QueryServiceQueryInProgress"><value>Запрос уже выполняется для данного сеанса редактора. Отмените запрос или дождитесь завершения его выполнения.</value></data>
|
||||
<data name="QueryServiceMessageSenderNotSql"><value>В качестве отправителя (sender) для события OnInfoMessage ожидается экземпляр SqlConnection</value></data>
|
||||
<data name="QueryServiceSaveAsResultSetNotComplete"><value>Результат не может быть сохранен до завершения выполнения запроса</value></data>
|
||||
<data name="QueryServiceSaveAsMiscStartingError"><value>При запуске задачи сохранения произошла внутренняя ошибка</value></data>
|
||||
<data name="QueryServiceSaveAsInProgress"><value>По указанному пути уже выполняется сохранение результатов</value></data>
|
||||
<data name="QueryServiceSaveAsFail"><value>Не удалось сохранить {0}: {1}</value></data>
|
||||
<data name="QueryServiceResultSetNotRead"><value>Невозможно прочитать подмножество, поскольку результаты еще не были получены с сервера</value></data>
|
||||
<data name="QueryServiceResultSetStartRowOutOfRange"><value>Индекс начальной строки не может быть меньше нуля или больше количества строк, находящихся в результирующем наборе</value></data>
|
||||
<data name="QueryServiceResultSetRowCountOutOfRange"><value>Число строк должно быть положительным целым числом</value></data>
|
||||
<data name="QueryServiceResultSetNoColumnSchema"><value>Не удалось получить столбец схемы для результирующего набора</value></data>
|
||||
<data name="QueryServiceExecutionPlanNotFound"><value>Не удалось получить план выполнения из результирующего набора</value></data>
|
||||
<data name="PeekDefinitionAzureError"><value>В настоящее время эта функция не поддерживается Azure SQL DB и Data Warehouse: {0}</value></data>
|
||||
<data name="PeekDefinitionError"><value>Произошла непредвиденная ошибка во время выполнения Peek Definition: {0}</value></data>
|
||||
<data name="PeekDefinitionNoResultsError"><value>Результаты не найдены.</value></data>
|
||||
<data name="PeekDefinitionDatabaseError"><value>Объект базы данных не был получен.</value></data>
|
||||
<data name="PeekDefinitionNotConnectedError"><value>Подключитесь к серверу.</value></data>
|
||||
<data name="PeekDefinitionTimedoutError"><value>Истекло время ожидания операции.</value></data>
|
||||
<data name="PeekDefinitionTypeNotSupportedError"><value>В настоящее время этот тип объекта не поддерживается этим средством.</value></data>
|
||||
<data name="WorkspaceServicePositionLineOutOfRange"><value>Позиция выходит за пределы диапазона строк файла</value></data>
|
||||
<data name="WorkspaceServicePositionColumnOutOfRange"><value>Позиция выходит за пределы диапазона столбцов строки {0}</value></data>
|
||||
<data name="WorkspaceServiceBufferPositionOutOfOrder"><value>Начальная позиция ({0}, {1}) должна быть меньше либо равна конечной ({2}, {3})</value></data>
|
||||
<data name="EE_BatchSqlMessageNoProcedureInfo"><value>Сообщение {0}, уровень {1}, состояние {2}, строка {3}</value></data>
|
||||
<data name="EE_BatchSqlMessageWithProcedureInfo"><value>Сообщение {0}, уровень {1}, состояние {2}, процедура {3}, строка {4}</value></data>
|
||||
<data name="EE_BatchSqlMessageNoLineInfo"><value>Сообщение {0}, уровень {1}, состояние {2}</value></data>
|
||||
<data name="EE_BatchError_Exception"><value>При обработке пакета произошла ошибка: {0}</value></data>
|
||||
<data name="EE_BatchExecutionInfo_RowsAffected"><value>({0} строк затронуто)</value></data>
|
||||
<data name="EE_ExecutionNotYetCompleteError"><value>Предыдущее выполнение еще не завершено.</value></data>
|
||||
<data name="EE_ScriptError_Error"><value>Произошла ошибка сценария.</value></data>
|
||||
<data name="EE_ScriptError_ParsingSyntax"><value>Обнаружен неправильный синтаксис при обработке {0}.</value></data>
|
||||
<data name="EE_ScriptError_FatalError"><value>Произошла неустранимая ошибка.</value></data>
|
||||
<data name="EE_ExecutionInfo_FinalizingLoop"><value>Выполнение завершено такое количество раз: {0}...</value></data>
|
||||
<data name="EE_ExecutionInfo_QueryCancelledbyUser"><value>Пользователь отменил запрос.</value></data>
|
||||
<data name="EE_BatchExecutionError_Halting"><value>При выполнении пакета произошла ошибка.</value></data>
|
||||
<data name="EE_BatchExecutionError_Ignoring"><value>В процессе выполнения пакета произошла ошибка, но она была проигнорирована.</value></data>
|
||||
<data name="EE_ExecutionInfo_InitializingLoop"><value>Beginning execution loop</value></data>
|
||||
<data name="EE_ExecutionError_CommandNotSupported"><value>Команда {0} не поддерживается.</value></data>
|
||||
<data name="EE_ExecutionError_VariableNotFound"><value>Переменная {0} не найдена.</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineError"><value>Ошибка выполнения SQL: {0}</value></data>
|
||||
<data name="BatchParserWrapperExecutionError"><value>BatchParserWrapper: {0} найдено; строка {1}: {2}; описание: {3}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchMessage"><value>BatchParserWrapper получено сообщение: {0}. Детали: {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetProcessing"><value>BatchParserWrapper выполнение пакетной обработки ResultSet. DataReader.FieldCount: {0} DataReader.RecordsAffected: {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetFinished"><value>BatchParserWrapper: обработка завершена.</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchCancelling"><value>BatchParserWrapper: выполнение пакета отменено.</value></data>
|
||||
<data name="EE_ScriptError_Warning"><value>Сценарий содержит предупреждения.</value></data>
|
||||
<data name="TroubleshootingAssistanceMessage"><value>Для получения дополнительной информации об этой ошибке, обратитесь к разделам по устранению неполадок в документации по продукту.</value></data>
|
||||
<data name="BatchParser_CircularReference"><value>Обнаружена рекурсивная ссылка на файл «{0}».</value></data>
|
||||
<data name="BatchParser_CommentNotTerminated"><value>Отсутствует обозначение конца комментария - «*/».</value></data>
|
||||
<data name="BatchParser_StringNotTerminated"><value>Незакрытые кавычки в конце символьной строки.</value></data>
|
||||
<data name="BatchParser_IncorrectSyntax"><value>При разборе «{0}» обнаружен неправильный синтаксис.</value></data>
|
||||
<data name="BatchParser_VariableNotDefined"><value>Переменная {0} не определена.</value></data>
|
||||
<data name="TestLocalizationConstant"><value>тест</value></data>
|
||||
<data name="ErrorEmptyStringReplacement"><value>Замена пустой строки на пустую строку.</value></data>
|
||||
<data name="EditDataSessionNotFound"><value>Сеанс не найден.</value></data>
|
||||
<data name="EditDataQueryNotCompleted"><value>Выполнение запроса не завершено</value></data>
|
||||
<data name="EditDataQueryImproperResultSets"><value>Запрос должен содержать только один набор результатов</value></data>
|
||||
<data name="EditDataFailedAddRow"><value>Не удалось добавить новую строку в кэш обновлений</value></data>
|
||||
<data name="EditDataRowOutOfRange"><value>Указанный идентификатор строки находится за пределами диапазона строк в кэше редактирования</value></data>
|
||||
<data name="EditDataUpdatePending"><value>Обновление уже отправлено для этой строки и должно быть отменено первым</value></data>
|
||||
<data name="EditDataUpdateNotPending"><value>Для указанной строки нет обновлений в очереди</value></data>
|
||||
<data name="EditDataObjectMetadataNotFound"><value>Не удалось найти метаданные таблицы или представления</value></data>
|
||||
<data name="EditDataInvalidFormatBinary"><value>Недопустимый формат данных для двоичного столбца</value></data>
|
||||
<data name="EditDataInvalidFormatBoolean"><value>Логические столбцы должны содержать число 1 или 0, либо строку true или false</value></data>
|
||||
<data name="EditDataCreateScriptMissingValue"><value>Недопустимое значение ячейки</value></data>
|
||||
<data name="EditDataDeleteSetCell"><value>Обновление ячейки не может быть применено, поскольку для данной строки ожидается удаление.</value></data>
|
||||
<data name="EditDataColumnIdOutOfRange"><value>Идентификатор столбца должен находиться в диапазоне столбцов запроса</value></data>
|
||||
<data name="EditDataColumnCannotBeEdited"><value>Столбец не может быть изменен</value></data>
|
||||
<data name="EditDataColumnNoKeyColumns"><value>Ключевые поля не найдены</value></data>
|
||||
<data name="EditDataScriptFilePathNull"><value>Должно быть указано имя выходного файла</value></data>
|
||||
<data name="EditDataUnsupportedObjectType"><value>Объект базы данных {0} не может использоваться для редактирования.</value></data>
|
||||
<data name="ConnectionServiceDbErrorDefaultNotConnected"><value>Указанный URI '{0}' не имеет соединения по умолчанию</value></data>
|
||||
<data name="EditDataCommitInProgress"><value>Выполняется фиксация. Пожалуйста, дождитесь завершения.</value></data>
|
||||
<data name="SqlScriptFormatterDecimalMissingPrecision"><value>В десятичном столбце отсутствует числовая точность или масштаб</value></data>
|
||||
<data name="EditDataComputedColumnPlaceholder"><value><TBD></value></data>
|
||||
<data name="QueryServiceResultSetAddNoRows"><value>Невозможно добавить строку в файл буфера, поток не содержит строк</value></data>
|
||||
<data name="EditDataTimeOver24Hrs"><value>Значение столбца TIME должно находиться в диапазоне между 00:00:00.0000000 и 23:59:59.9999999</value></data>
|
||||
<data name="EditDataNullNotAllowed"><value>Значение NULL недопустимо в этом столбце.</value></data>
|
||||
<data name="EditDataSessionAlreadyExists"><value>Сеанс редактирования уже существует.</value></data>
|
||||
<data name="EditDataSessionNotInitialized"><value>Сеанс редактирования не был инициализирован.</value></data>
|
||||
<data name="EditDataSessionAlreadyInitialized"><value>Сеанс редактирования уже был инициализирован.</value></data>
|
||||
<data name="EditDataSessionAlreadyInitializing"><value>Сеанс редактирования уже был инициализирован или находится в процессе инициализации</value></data>
|
||||
<data name="EditDataQueryFailed"><value>Не удалось выполнить запрос, см. сообщения для получения подробностей</value></data>
|
||||
<data name="EditDataFilteringNegativeLimit"><value>Значение, определяющее ограничение числа записей, не может быть отрицательным</value></data>
|
||||
<data name="QueryServiceCellNull"><value>NULL</value></data>
|
||||
<data name="EditDataMetadataObjectNameRequired"><value>Должно быть указано имя объекта</value></data>
|
||||
<data name="EditDataMetadataTooManyIdentifiers"><value>Явное указание сервера или базы данных не поддерживается</value></data>
|
||||
<data name="EditDataMetadataNotExtended"><value>Метаданные таблицы не имеют расширенных свойств</value></data>
|
||||
<data name="EditDataObjectNotFound"><value>Запрошенная таблица или представление не найдены.</value></data>
|
||||
<data name="TreeNodeError"><value>Ошибка при расширении: {0}</value></data>
|
||||
<data name="ServerNodeConnectionError"><value>Ошибка при подключении к {0}</value></data>
|
||||
<data name="SchemaHierarchy_Aggregates"><value>Статистические выражения</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoles"><value>Роли сервера</value></data>
|
||||
<data name="SchemaHierarchy_ApplicationRoles"><value>Роли приложения</value></data>
|
||||
<data name="SchemaHierarchy_Assemblies"><value>Сборки</value></data>
|
||||
<data name="SchemaHierarchy_AssemblyFiles"><value>Файлы сборки</value></data>
|
||||
<data name="SchemaHierarchy_AsymmetricKeys"><value>Асимметричные ключи</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAsymmetricKeys"><value>Асимметричные ключи</value></data>
|
||||
<data name="SchemaHierarchy_DataCompressionOptions"><value>Параметры сжатия данных</value></data>
|
||||
<data name="SchemaHierarchy_Certificates"><value>Сертификаты</value></data>
|
||||
<data name="SchemaHierarchy_FileTables"><value>Объекты FileTable</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseCertificates"><value>Сертификаты</value></data>
|
||||
<data name="SchemaHierarchy_CheckConstraints"><value>Проверочные ограничения</value></data>
|
||||
<data name="SchemaHierarchy_Columns"><value>Столбцы</value></data>
|
||||
<data name="SchemaHierarchy_Constraints"><value>Ограничения</value></data>
|
||||
<data name="SchemaHierarchy_Contracts"><value>Контракты</value></data>
|
||||
<data name="SchemaHierarchy_Credentials"><value>Учетные данные</value></data>
|
||||
<data name="SchemaHierarchy_ErrorMessages"><value>Сообщения об ошибках</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoleMembership"><value>Участие в роли сервера</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseOptions"><value>Параметры базы данных</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseRoles"><value>Роли базы данных</value></data>
|
||||
<data name="SchemaHierarchy_RoleMemberships"><value>Членства в роли</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseTriggers"><value>Триггеры базы данных</value></data>
|
||||
<data name="SchemaHierarchy_DefaultConstraints"><value>Ограничения по умолчанию</value></data>
|
||||
<data name="SchemaHierarchy_Defaults"><value>Значения по умолчанию</value></data>
|
||||
<data name="SchemaHierarchy_Sequences"><value>Последовательности</value></data>
|
||||
<data name="SchemaHierarchy_Endpoints"><value>Конечные точки</value></data>
|
||||
<data name="SchemaHierarchy_EventNotifications"><value>Уведомления о событиях</value></data>
|
||||
<data name="SchemaHierarchy_ServerEventNotifications"><value>Уведомления о событиях сервера</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedProperties"><value>Расширенные свойства</value></data>
|
||||
<data name="SchemaHierarchy_FileGroups"><value>Файловые группы</value></data>
|
||||
<data name="SchemaHierarchy_ForeignKeys"><value>Внешние ключи</value></data>
|
||||
<data name="SchemaHierarchy_FullTextCatalogs"><value>Полнотекстовые каталоги</value></data>
|
||||
<data name="SchemaHierarchy_FullTextIndexes"><value>Полнотекстовые индексы</value></data>
|
||||
<data name="SchemaHierarchy_Functions"><value>Функции</value></data>
|
||||
<data name="SchemaHierarchy_Indexes"><value>Индексы</value></data>
|
||||
<data name="SchemaHierarchy_InlineFunctions"><value>Встроенная функции</value></data>
|
||||
<data name="SchemaHierarchy_Keys"><value>Ключи</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServers"><value>Связанные серверы</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServerLogins"><value>Имена входа на связанный сервер</value></data>
|
||||
<data name="SchemaHierarchy_Logins"><value>Имена входа</value></data>
|
||||
<data name="SchemaHierarchy_MasterKey"><value>Главный ключ</value></data>
|
||||
<data name="SchemaHierarchy_MasterKeys"><value>Главные ключи</value></data>
|
||||
<data name="SchemaHierarchy_MessageTypes"><value>Типы сообщений</value></data>
|
||||
<data name="SchemaHierarchy_MultiSelectFunctions"><value>Функция с табличным значением</value></data>
|
||||
<data name="SchemaHierarchy_Parameters"><value>Параметры</value></data>
|
||||
<data name="SchemaHierarchy_PartitionFunctions"><value>Функции секционирования</value></data>
|
||||
<data name="SchemaHierarchy_PartitionSchemes"><value>Схемы секционирования</value></data>
|
||||
<data name="SchemaHierarchy_Permissions"><value>Разрешения</value></data>
|
||||
<data name="SchemaHierarchy_PrimaryKeys"><value>Первичные ключи</value></data>
|
||||
<data name="SchemaHierarchy_Programmability"><value>Программируемость</value></data>
|
||||
<data name="SchemaHierarchy_Queues"><value>Списки ожидания</value></data>
|
||||
<data name="SchemaHierarchy_RemoteServiceBindings"><value>Привязки удаленных служб</value></data>
|
||||
<data name="SchemaHierarchy_ReturnedColumns"><value>Возвращенные столбцы</value></data>
|
||||
<data name="SchemaHierarchy_Roles"><value>Роли</value></data>
|
||||
<data name="SchemaHierarchy_Routes"><value>Маршруты</value></data>
|
||||
<data name="SchemaHierarchy_Rules"><value>Правила</value></data>
|
||||
<data name="SchemaHierarchy_Schemas"><value>Схемы</value></data>
|
||||
<data name="SchemaHierarchy_Security"><value>Безопасность</value></data>
|
||||
<data name="SchemaHierarchy_ServerObjects"><value>Объекты сервера</value></data>
|
||||
<data name="SchemaHierarchy_Management"><value>Управление</value></data>
|
||||
<data name="SchemaHierarchy_ServerTriggers"><value>Триггеры</value></data>
|
||||
<data name="SchemaHierarchy_ServiceBroker"><value>Компонент Service Broker</value></data>
|
||||
<data name="SchemaHierarchy_Services"><value>Службы</value></data>
|
||||
<data name="SchemaHierarchy_Signatures"><value>Сигнатуры</value></data>
|
||||
<data name="SchemaHierarchy_LogFiles"><value>Файлы журнала</value></data>
|
||||
<data name="SchemaHierarchy_Statistics"><value>Статистика</value></data>
|
||||
<data name="SchemaHierarchy_Storage"><value>Хранилище</value></data>
|
||||
<data name="SchemaHierarchy_StoredProcedures"><value>Хранимые процедуры</value></data>
|
||||
<data name="SchemaHierarchy_SymmetricKeys"><value>Симметричные ключи</value></data>
|
||||
<data name="SchemaHierarchy_Synonyms"><value>Синонимы</value></data>
|
||||
<data name="SchemaHierarchy_Tables"><value>Таблицы</value></data>
|
||||
<data name="SchemaHierarchy_Triggers"><value>Триггеры</value></data>
|
||||
<data name="SchemaHierarchy_Types"><value>Типы</value></data>
|
||||
<data name="SchemaHierarchy_UniqueKeys"><value>Уникальные ключи</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedDataTypes"><value>Определяемые пользователем типы данных</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTypes"><value>Определяемые пользователем типы (CLR)</value></data>
|
||||
<data name="SchemaHierarchy_Users"><value>Пользователи</value></data>
|
||||
<data name="SchemaHierarchy_Views"><value>Представления</value></data>
|
||||
<data name="SchemaHierarchy_XmlIndexes"><value>XML-индексы</value></data>
|
||||
<data name="SchemaHierarchy_XMLSchemaCollections"><value>Коллекция схем XML</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTableTypes"><value>Определяемые пользователем типы таблиц</value></data>
|
||||
<data name="SchemaHierarchy_FilegroupFiles"><value>Файлы</value></data>
|
||||
<data name="MissingCaption"><value>Отсутствует заголовок</value></data>
|
||||
<data name="SchemaHierarchy_BrokerPriorities"><value>Приоритеты брокера</value></data>
|
||||
<data name="SchemaHierarchy_CryptographicProviders"><value>Поставщики служб шифрования</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAuditSpecifications"><value>Спецификации аудита базы данных</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseEncryptionKeys"><value>Ключи шифрования базы данных</value></data>
|
||||
<data name="SchemaHierarchy_EventSessions"><value>Сеансы событий</value></data>
|
||||
<data name="SchemaHierarchy_FullTextStopLists"><value>Полнотекстовые списки стоп-слов</value></data>
|
||||
<data name="SchemaHierarchy_ResourcePools"><value>Пулы ресурсов</value></data>
|
||||
<data name="SchemaHierarchy_ServerAudits"><value>Аудит</value></data>
|
||||
<data name="SchemaHierarchy_ServerAuditSpecifications"><value>Спецификации аудита сервера</value></data>
|
||||
<data name="SchemaHierarchy_SpatialIndexes"><value>Пространственные индексы</value></data>
|
||||
<data name="SchemaHierarchy_WorkloadGroups"><value>Группы рабочей нагрузки</value></data>
|
||||
<data name="SchemaHierarchy_SqlFiles"><value>Файлы SQL</value></data>
|
||||
<data name="SchemaHierarchy_ServerFunctions"><value>Функции сервера</value></data>
|
||||
<data name="SchemaHierarchy_SqlType"><value>Тип SQL</value></data>
|
||||
<data name="SchemaHierarchy_ServerOptions"><value>Параметры сервера</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseDiagrams"><value>Диаграммы базы данных</value></data>
|
||||
<data name="SchemaHierarchy_SystemTables"><value>Системные таблицы</value></data>
|
||||
<data name="SchemaHierarchy_Databases"><value>Базы данных</value></data>
|
||||
<data name="SchemaHierarchy_SystemContracts"><value>Системные контракты</value></data>
|
||||
<data name="SchemaHierarchy_SystemDatabases"><value>Системные базы данных</value></data>
|
||||
<data name="SchemaHierarchy_SystemMessageTypes"><value>Системные типы сообщений</value></data>
|
||||
<data name="SchemaHierarchy_SystemQueues"><value>Системные очереди</value></data>
|
||||
<data name="SchemaHierarchy_SystemServices"><value>Системные службы</value></data>
|
||||
<data name="SchemaHierarchy_SystemStoredProcedures"><value>Системные хранимые процедуры</value></data>
|
||||
<data name="SchemaHierarchy_SystemViews"><value>Системные представления</value></data>
|
||||
<data name="SchemaHierarchy_DataTierApplications"><value>Приложения уровня данных</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedStoredProcedures"><value>Расширенные хранимые процедуры</value></data>
|
||||
<data name="SchemaHierarchy_SystemAggregateFunctions"><value>Агрегатные функции</value></data>
|
||||
<data name="SchemaHierarchy_SystemApproximateNumerics"><value>Приблизительные числовые значения</value></data>
|
||||
<data name="SchemaHierarchy_SystemBinaryStrings"><value>Двоичные строки</value></data>
|
||||
<data name="SchemaHierarchy_SystemCharacterStrings"><value>Символьные строки</value></data>
|
||||
<data name="SchemaHierarchy_SystemCLRDataTypes"><value>Типы данных CLR</value></data>
|
||||
<data name="SchemaHierarchy_SystemConfigurationFunctions"><value>Функции конфигурации</value></data>
|
||||
<data name="SchemaHierarchy_SystemCursorFunctions"><value>Функции работы с курсорами</value></data>
|
||||
<data name="SchemaHierarchy_SystemDataTypes"><value>Системные типы данных</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTime"><value>Дата и время</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTimeFunctions"><value>Функции даты и времени</value></data>
|
||||
<data name="SchemaHierarchy_SystemExactNumerics"><value>Точные числовые значения</value></data>
|
||||
<data name="SchemaHierarchy_SystemFunctions"><value>Системные функции</value></data>
|
||||
<data name="SchemaHierarchy_SystemHierarchyIdFunctions"><value>Функции идентификаторов иерархии</value></data>
|
||||
<data name="SchemaHierarchy_SystemMathematicalFunctions"><value>Математические функции</value></data>
|
||||
<data name="SchemaHierarchy_SystemMetadataFunctions"><value>Функции метаданных</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherDataTypes"><value>Другие типы данных</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherFunctions"><value>Другие функции</value></data>
|
||||
<data name="SchemaHierarchy_SystemRowsetFunctions"><value>Функции набора строк</value></data>
|
||||
<data name="SchemaHierarchy_SystemSecurityFunctions"><value>Функции безопасности</value></data>
|
||||
<data name="SchemaHierarchy_SystemSpatialDataTypes"><value>Пространственные типы данных</value></data>
|
||||
<data name="SchemaHierarchy_SystemStringFunctions"><value>Строковые функции</value></data>
|
||||
<data name="SchemaHierarchy_SystemSystemStatisticalFunctions"><value>Системные статистические функции</value></data>
|
||||
<data name="SchemaHierarchy_SystemTextAndImageFunctions"><value>Функции для работы с изображениями и текстом</value></data>
|
||||
<data name="SchemaHierarchy_SystemUnicodeCharacterStrings"><value>Строки символов в Юникоде</value></data>
|
||||
<data name="SchemaHierarchy_AggregateFunctions"><value>Агрегатные функции</value></data>
|
||||
<data name="SchemaHierarchy_ScalarValuedFunctions"><value>Скалярные функции</value></data>
|
||||
<data name="SchemaHierarchy_TableValuedFunctions"><value>Функции с табличным значением</value></data>
|
||||
<data name="SchemaHierarchy_SystemExtendedStoredProcedures"><value>Системные расширенные хранимые процедуры</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInType"><value>Встроенные типы</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInServerRole"><value>Встроенные роли сервера</value></data>
|
||||
<data name="SchemaHierarchy_UserWithPassword"><value>Пользователь с паролем</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyList"><value>Список свойств поиска</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPolicies"><value>Политики безопасности</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPredicates"><value>Предикаты безопасности</value></data>
|
||||
<data name="SchemaHierarchy_ServerRole"><value>Роль сервера</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyLists"><value>Списки свойств поиска</value></data>
|
||||
<data name="SchemaHierarchy_ColumnStoreIndexes"><value>Индексы хранилища столбцов</value></data>
|
||||
<data name="SchemaHierarchy_TableTypeIndexes"><value>Индексы типов таблиц</value></data>
|
||||
<data name="SchemaHierarchy_SelectiveXmlIndexes"><value>Селективные XML-индексы</value></data>
|
||||
<data name="SchemaHierarchy_XmlNamespaces"><value>Пространства имен XML</value></data>
|
||||
<data name="SchemaHierarchy_XmlTypedPromotedPaths"><value>Типизированные повышенные пути XML</value></data>
|
||||
<data name="SchemaHierarchy_SqlTypedPromotedPaths"><value>Типизированные повышенные пути T-SQL</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseScopedCredentials"><value>Учетные данные для базы данных</value></data>
|
||||
<data name="SchemaHierarchy_ExternalDataSources"><value>Внешние источники данных</value></data>
|
||||
<data name="SchemaHierarchy_ExternalFileFormats"><value>Внешние форматы файлов</value></data>
|
||||
<data name="SchemaHierarchy_ExternalResources"><value>Внешние ресурсы</value></data>
|
||||
<data name="SchemaHierarchy_ExternalTables"><value>Внешние таблицы</value></data>
|
||||
<data name="SchemaHierarchy_AlwaysEncryptedKeys"><value>Ключи Always Encrypted</value></data>
|
||||
<data name="SchemaHierarchy_ColumnMasterKeys"><value>Главные ключи столбца</value></data>
|
||||
<data name="SchemaHierarchy_ColumnEncryptionKeys"><value>Ключи шифрования столбца</value></data>
|
||||
<data name="SchemaHierarchy_Server"><value>Сервер</value></data>
|
||||
<data name="ScriptingParams_ConnectionString_Property_Invalid"><value>Ошибка при анализе свойства ScriptingParams.ConnectionString.</value></data>
|
||||
<data name="ScriptingParams_FilePath_Property_Invalid"><value>Недопустимый каталог указан в свойстве ScriptingParams.FilePath.</value></data>
|
||||
<data name="ScriptingListObjectsCompleteParams_ConnectionString_Property_Invalid"><value>Ошибка при анализе свойства ScriptingListObjectsCompleteParams.ConnectionString.</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterLabelFormatString"><value>{0} ({1}, {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterNoDefaultLabel"><value>Нет значения по умолчанию</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputLabel"><value>Входной</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputLabel"><value>Входной/выходной</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputReadOnlyLabel"><value>Входной/только для чтения</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputReadOnlyLabel"><value>Входной/выходной/только для чтения</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterDefaultLabel"><value>Значение по умолчанию</value></data>
|
||||
<data name="SchemaHierarchy_NullColumn_Label"><value>null</value></data>
|
||||
<data name="SchemaHierarchy_NotNullColumn_Label"><value>not null</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithType"><value>{0} ({1}, {2})</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithoutType"><value>{0} ({1})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithType"><value>{0} (вычислено {1}, {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithoutType"><value>{0} (вычислено {1})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithoutType"><value>{0} (набор столбцов, {1})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithType"><value>{0} (набор столбцов, {1}{2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithTypeAndKeyString"><value>{0} (набор столбцов, {1}, {2}, {3})</value></data>
|
||||
<data name="UniqueIndex_LabelPart"><value>UNIQUE</value></data>
|
||||
<data name="NonUniqueIndex_LabelPart"><value>Неуникальный</value></data>
|
||||
<data name="ClusteredIndex_LabelPart"><value>Кластеризованный</value></data>
|
||||
<data name="NonClusteredIndex_LabelPart"><value>Некластеризованный</value></data>
|
||||
<data name="History_LabelPart"><value>Журнал</value></data>
|
||||
<data name="SystemVersioned_LabelPart"><value>Системно-версионный</value></data>
|
||||
<data name="unavailable"><value>Недоступно</value></data>
|
||||
<data name="filegroup_dialog_defaultFilegroup"><value>Текущая файловая группа по умолчанию: {0}</value></data>
|
||||
<data name="filegroup_dialog_title"><value>Создание файловой группы для {0}</value></data>
|
||||
<data name="filegroups_default"><value>Значение по умолчанию</value></data>
|
||||
<data name="filegroups_files"><value>Файлы</value></data>
|
||||
<data name="filegroups_name"><value>Имя</value></data>
|
||||
<data name="filegroups_readonly"><value>Только для чтения</value></data>
|
||||
<data name="general_autogrowth"><value>Автоувеличение/максимальный размер</value></data>
|
||||
<data name="general_builderText"><value>...</value></data>
|
||||
<data name="general_default"><value><по умолчанию></value></data>
|
||||
<data name="general_fileGroup"><value>Группа файлов</value></data>
|
||||
<data name="general_fileName"><value>Логическое имя</value></data>
|
||||
<data name="general_fileType"><value>Тип файла</value></data>
|
||||
<data name="general_initialSize"><value>Начальный размер (МБ)</value></data>
|
||||
<data name="general_newFilegroup"><value><создать файловую группу></value></data>
|
||||
<data name="general_path"><value>Путь</value></data>
|
||||
<data name="general_physicalFileName"><value>Имя файла</value></data>
|
||||
<data name="general_rawDevice"><value><неформатированный носитель></value></data>
|
||||
<data name="general_recoveryModel_bulkLogged"><value>С неполным протоколированием</value></data>
|
||||
<data name="general_recoveryModel_full"><value>Полная</value></data>
|
||||
<data name="general_recoveryModel_simple"><value>Простая</value></data>
|
||||
<data name="general_titleSearchOwner"><value>Выбор владельца базы данных</value></data>
|
||||
<data name="prototype_autogrowth_disabled"><value>Нет</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByMB"><value>С шагом по {0} МБ до {1} МБ</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByPercent"><value>С шагом по {0}% до {1} МБ </value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByMB"><value>С шагом по {0} МБ, без ограничений</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByPercent"><value>С шагом по {0} %, без ограничений</value></data>
|
||||
<data name="prototype_autogrowth_unlimitedfilestream"><value>Без ограничений</value></data>
|
||||
<data name="prototype_autogrowth_limitedfilestream"><value>Ограничено {0} МБ</value></data>
|
||||
<data name="prototype_db_category_automatic"><value>Автоматически</value></data>
|
||||
<data name="prototype_db_category_servicebroker"><value>Service Broker</value></data>
|
||||
<data name="prototype_db_category_collation"><value>Параметры сортировки</value></data>
|
||||
<data name="prototype_db_category_cursor"><value>Курсор</value></data>
|
||||
<data name="prototype_db_category_misc"><value>Прочее</value></data>
|
||||
<data name="prototype_db_category_recovery"><value>Восстановление</value></data>
|
||||
<data name="prototype_db_category_state"><value>Состояние</value></data>
|
||||
<data name="prototype_db_prop_ansiNullDefault"><value>По умолчанию ANSI NULL</value></data>
|
||||
<data name="prototype_db_prop_ansiNulls"><value>Значения ANSI NULLS включены</value></data>
|
||||
<data name="prototype_db_prop_ansiPadding"><value>Включено заполнение ANSI </value></data>
|
||||
<data name="prototype_db_prop_ansiWarnings"><value>Включены предупреждения ANSI</value></data>
|
||||
<data name="prototype_db_prop_arithabort"><value>Включено прерывание при делении на ноль </value></data>
|
||||
<data name="prototype_db_prop_autoClose"><value>Auto Close</value></data>
|
||||
<data name="prototype_db_prop_autoCreateStatistics"><value>Автоматическое создание статистики</value></data>
|
||||
<data name="prototype_db_prop_autoShrink"><value>Автоматическое сжатие</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatistics"><value>Автоматическое обновление статистики </value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatisticsAsync"><value>Асинхронное автообновление статистики</value></data>
|
||||
<data name="prototype_db_prop_caseSensitive"><value>Case Sensitive</value></data>
|
||||
<data name="prototype_db_prop_closeCursorOnCommit"><value>Закрывать курсор при разрешении фиксации </value></data>
|
||||
<data name="prototype_db_prop_collation"><value>Параметры сортировки</value></data>
|
||||
<data name="prototype_db_prop_concatNullYieldsNull"><value>Объединение со значением NULL дает NULL </value></data>
|
||||
<data name="prototype_db_prop_databaseCompatibilityLevel"><value>Уровень совместимости базы данных</value></data>
|
||||
<data name="prototype_db_prop_databaseState"><value>Состояние базы данных </value></data>
|
||||
<data name="prototype_db_prop_defaultCursor"><value>Курсор по умолчанию</value></data>
|
||||
<data name="prototype_db_prop_fullTextIndexing"><value>Полнотекстовое индексирование включено </value></data>
|
||||
<data name="prototype_db_prop_numericRoundAbort"><value>Автоокругление чисел </value></data>
|
||||
<data name="prototype_db_prop_pageVerify"><value>Проверка страниц </value></data>
|
||||
<data name="prototype_db_prop_quotedIdentifier"><value>Включены заключенные в кавычки идентификаторы</value></data>
|
||||
<data name="prototype_db_prop_readOnly"><value>База данных только для чтения</value></data>
|
||||
<data name="prototype_db_prop_recursiveTriggers"><value>Включены рекурсивные триггеры </value></data>
|
||||
<data name="prototype_db_prop_restrictAccess"><value>Ограничение доступа</value></data>
|
||||
<data name="prototype_db_prop_selectIntoBulkCopy"><value>Выбор/Массовое копирование </value></data>
|
||||
<data name="prototype_db_prop_honorBrokerPriority"><value>Учитывать приоритет компонента Honor Broker</value></data>
|
||||
<data name="prototype_db_prop_serviceBrokerGuid"><value>Идентификатор компонента Service Broker</value></data>
|
||||
<data name="prototype_db_prop_brokerEnabled"><value>Включен компонент Broker</value></data>
|
||||
<data name="prototype_db_prop_truncateLogOnCheckpoint"><value>Усечение журнала на контрольной точке </value></data>
|
||||
<data name="prototype_db_prop_dbChaining"><value>Межбазовые цепочки владения включены</value></data>
|
||||
<data name="prototype_db_prop_trustworthy"><value>Заслуживает доверия</value></data>
|
||||
<data name="prototype_db_prop_dateCorrelationOptimization"><value>Date Correlation Optimization Enabledprototype_db_prop_parameterization = Parameterization</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_forced"><value>Принудительное</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_simple"><value>Простая</value></data>
|
||||
<data name="prototype_file_dataFile"><value>Данные СТРОК</value></data>
|
||||
<data name="prototype_file_logFile"><value>ЖУРНАЛ</value></data>
|
||||
<data name="prototype_file_filestreamFile"><value>Данные FILESTREAM</value></data>
|
||||
<data name="prototype_file_noFileGroup"><value>Неприменимо</value></data>
|
||||
<data name="prototype_file_defaultpathstring"><value><default path></value></data>
|
||||
<data name="title_openConnectionsMustBeClosed"><value>Открытые соединения</value></data>
|
||||
<data name="warning_openConnectionsMustBeClosed"><value>Чтобы изменить свойства базы данных, SQL Server должен закрыть все остальные соединения с этой базой данных. Изменить свойства и закрыть остальные соединения?</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_autoClosed"><value>AUTO_CLOSED</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_emergency"><value>EMERGENCY</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_inaccessible"><value>INACCESSIBLE</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_normal"><value>NORMAL</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_offline"><value>OFFLINE</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recovering"><value>RECOVERING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recoveryPending"><value>RECOVERY PENDING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_restoring"><value>RESTORING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_shutdown"><value>SHUTDOWN</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_standby"><value>STANDBY</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_suspect"><value>SUSPECT</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_global"><value>GLOBAL</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_local"><value>LOCAL</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_multiple"><value>MULTI_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_restricted"><value>RESTRICTED_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_single"><value>SINGLE_USER</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_checksum"><value>CHECKSUM</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_none"><value>Нет</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_tornPageDetection"><value>TORN_PAGE_DETECTION</value></data>
|
||||
<data name="prototype_db_prop_varDecimalEnabled"><value>Включен формат хранения VarDecimal</value></data>
|
||||
<data name="compatibilityLevel_katmai"><value>SQL Server 2008 (100)</value></data>
|
||||
<data name="prototype_db_prop_encryptionEnabled"><value>Шифрование включено</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_off"><value>ОТКЛ.</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_on"><value>ВКЛ.</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_primary"><value>ПЕРВИЧНЫЙ</value></data>
|
||||
<data name="error_db_prop_invalidleadingColumns"><value>Для политики распространения HASH количество начальных хэш-столбцов указывать не обязательно. Оно может составлять от 1 до 16 столбцов</value></data>
|
||||
<data name="compatibilityLevel_denali"><value>SQL Server 2012 (110)</value></data>
|
||||
<data name="compatibilityLevel_sql14"><value>SQL Server 2014 (120)</value></data>
|
||||
<data name="compatibilityLevel_sql15"><value>SQL Server 2016 (130)</value></data>
|
||||
<data name="compatibilityLevel_sqlvNext"><value>SQL Server vNext (140)</value></data>
|
||||
<data name="general_containmentType_None"><value>Нет</value></data>
|
||||
<data name="general_containmentType_Partial"><value>Частично</value></data>
|
||||
<data name="filegroups_filestreamFiles"><value>Файлы FILESTREAM</value></data>
|
||||
<data name="prototype_file_noApplicableFileGroup"><value>Применимая файловая группа отсутствует</value></data>
|
||||
<data name="DatabaseNotAccessible"><value>База данных {0} недоступна.</value></data>
|
||||
<data name="QueryServiceResultSetHasNoResults"><value>запрос не имеет результатов</value></data>
|
||||
<data name="QueryServiceResultSetTooLarge"><value>Pезультатов слишком много строк для безопасной загрузки</value></data>
|
||||
<data name="prototype_db_prop_parameterization"><value>Параметризация</value></data>
|
||||
<data name="ConflictWithNoRecovery"><value>Не разрешается указывать этот параметр при восстановлении резервной копии с параметром NORECOVERY.</value></data>
|
||||
<data name="InvalidPathForDatabaseFile"><value>Недопустимый путь к файлу базы данных: {0}""""</value></data>
|
||||
<data name="Log"><value>Журнал</value></data>
|
||||
<data name="RestorePlanFailed"><value>Не удалось создать план восстановления </value></data>
|
||||
<data name="RestoreNotSupported"><value>Восстановление базы данных не поддерживается</value></data>
|
||||
<data name="RestoreTaskName"><value>Восстановление базы данных</value></data>
|
||||
<data name="RestoreCopyOnly"><value>(Копировать только)</value></data>
|
||||
<data name="RestoreBackupSetComponent"><value>Тип копии</value></data>
|
||||
<data name="RestoreBackupSetType"><value>Тип</value></data>
|
||||
<data name="RestoreBackupSetServer"><value>Сервер</value></data>
|
||||
<data name="RestoreBackupSetDatabase"><value>База данных</value></data>
|
||||
<data name="RestoreBackupSetPosition"><value>Положение</value></data>
|
||||
<data name="RestoreBackupSetFirstLsn"><value>Первый номер LSN</value></data>
|
||||
<data name="RestoreBackupSetLastLsn"><value>Последний номер LSN</value></data>
|
||||
<data name="RestoreBackupSetCheckpointLsn"><value>Номер LSN для контрольной точки</value></data>
|
||||
<data name="RestoreBackupSetFullLsn"><value>Полный номер LSN</value></data>
|
||||
<data name="RestoreBackupSetStartDate"><value>Дата начала</value></data>
|
||||
<data name="RestoreBackupSetFinishDate"><value>Дата завершения</value></data>
|
||||
<data name="RestoreBackupSetSize"><value>Размер</value></data>
|
||||
<data name="RestoreBackupSetUserName"><value>Имя пользователя</value></data>
|
||||
<data name="RestoreBackupSetExpiration"><value>Истечение срока</value></data>
|
||||
<data name="RestoreBackupSetName"><value>Имя</value></data>
|
||||
<data name="TheLastBackupTaken"><value>Последняя созданная резервная копия ({0})</value></data>
|
||||
<data name="BackupTaskName"><value>Создание резервной копии базы данных</value></data>
|
||||
<data name="TaskInProgress"><value>Выполняется</value></data>
|
||||
<data name="TaskCompleted"><value>Завершен</value></data>
|
||||
<data name="ScriptTaskName"><value>Скрипты</value></data>
|
||||
<data name="ProfilerConnectionNotFound"><value>Соединение не найдено</value></data>
|
||||
<data name="BackupPathIsFolderError"><value>Указанное имя файла является также именем каталога: {0}</value></data>
|
||||
<data name="InvalidBackupPathError"><value>Невозможно проверить существование расположения файла резервной копии: {0}</value></data>
|
||||
<data name="InvalidPathError"><value>Указанный путь на сервере недоступен: {0}</value></data>
|
||||
<data name="NoBackupsetsToRestore"><value>Для восстановления не выбран резервный набор данных</value></data>
|
||||
<data name="NeverBackedUp"><value>Никогда </value></data>
|
||||
</root>
|
||||
879
src/Microsoft.SqlTools.CoreServices/Localization/sr.strings
Normal file
879
src/Microsoft.SqlTools.CoreServices/Localization/sr.strings
Normal file
@@ -0,0 +1,879 @@
|
||||
# String resource file
|
||||
#
|
||||
# When processed by the String Resource Tool, this file generates
|
||||
# both a .CS and a .RESX file with the same name as the file.
|
||||
# The .CS file contains a class which can be used to access these
|
||||
# string resources, including the ability to format in
|
||||
# parameters, which are identified with the .NET {x} format
|
||||
# (see String.Format help).
|
||||
#
|
||||
# Comments below assume the file name is SR.strings.
|
||||
#
|
||||
# Lines starting with a semicolon ";" are also treated as comments, but
|
||||
# in a future version they will be extracted and made available in LocStudio
|
||||
# Put your comments to localizers _before_ the string they apply to.
|
||||
#
|
||||
# SMO build specific comment
|
||||
# after generating the .resx file, run srgen on it and get the .resx file
|
||||
# please remember to also check that .resx in, along with the
|
||||
# .strings and .cs files
|
||||
|
||||
[strings]
|
||||
|
||||
############################################################################
|
||||
# Connection Service
|
||||
|
||||
ConnectionServiceConnectErrorNullParams = Connection parameters cannot be null
|
||||
|
||||
ConnectionServiceListDbErrorNullOwnerUri = OwnerUri cannot be null or empty
|
||||
|
||||
ConnectionServiceListDbErrorNotConnected(string uri) = SpecifiedUri '{0}' does not have existing connection
|
||||
|
||||
ConnectionServiceDbErrorDefaultNotConnected(string uri) = Specified URI '{0}' does not have a default connection
|
||||
|
||||
ConnectionServiceConnStringInvalidAuthType(string authType) = Invalid value '{0}' for AuthenticationType. Valid values are 'Integrated' and 'SqlLogin'.
|
||||
|
||||
ConnectionServiceConnStringInvalidIntent(string intent) = Invalid value '{0}' for ApplicationIntent. Valid values are 'ReadWrite' and 'ReadOnly'.
|
||||
|
||||
ConnectionServiceConnectionCanceled = Connection canceled
|
||||
|
||||
### Connection Params Validation Errors
|
||||
|
||||
ConnectionParamsValidateNullOwnerUri = OwnerUri cannot be null or empty
|
||||
|
||||
ConnectionParamsValidateNullConnection = Connection details object cannot be null
|
||||
|
||||
ConnectionParamsValidateNullServerName = ServerName cannot be null or empty
|
||||
|
||||
ConnectionParamsValidateNullSqlAuth(string component) = {0} cannot be null or empty when using SqlLogin authentication
|
||||
|
||||
### General connection service strings
|
||||
AzureSqlDbEdition = Azure SQL DB
|
||||
AzureSqlDwEdition = Azure SQL Data Warehouse
|
||||
AzureSqlStretchEdition = Azure SQL Stretch Database
|
||||
|
||||
############################################################################
|
||||
# Query Execution Service
|
||||
|
||||
### Cancel Request
|
||||
|
||||
QueryServiceCancelAlreadyCompleted = The query has already completed, it cannot be cancelled
|
||||
|
||||
QueryServiceCancelDisposeFailed = Query successfully cancelled, failed to dispose query. Owner URI not found.
|
||||
|
||||
QueryServiceQueryCancelled = Query was canceled by user
|
||||
|
||||
### Subset Request
|
||||
|
||||
QueryServiceSubsetBatchNotCompleted = The batch has not completed, yet
|
||||
|
||||
QueryServiceSubsetBatchOutOfRange = Batch index cannot be less than 0 or greater than the number of batches
|
||||
|
||||
QueryServiceSubsetResultSetOutOfRange = Result set index cannot be less than 0 or greater than the number of result sets
|
||||
|
||||
### Data Reader Exceptions
|
||||
|
||||
QueryServiceDataReaderByteCountInvalid = Maximum number of bytes to return must be greater than zero
|
||||
|
||||
QueryServiceDataReaderCharCountInvalid = Maximum number of chars to return must be greater than zero
|
||||
|
||||
QueryServiceDataReaderXmlCountInvalid = Maximum number of XML bytes to return must be greater than zero
|
||||
|
||||
### File Stream Wrapper Exceptions
|
||||
|
||||
QueryServiceFileWrapperWriteOnly = Access method cannot be write-only
|
||||
|
||||
QueryServiceFileWrapperNotInitialized = FileStreamWrapper must be initialized before performing operations
|
||||
|
||||
QueryServiceFileWrapperReadOnly = This FileStreamWrapper cannot be used for writing
|
||||
|
||||
### Query Request
|
||||
|
||||
QueryServiceAffectedOneRow = (1 row affected)
|
||||
|
||||
QueryServiceAffectedRows(long rows) = ({0} rows affected)
|
||||
|
||||
QueryServiceCompletedSuccessfully = Commands completed successfully.
|
||||
|
||||
QueryServiceErrorFormat(int msg, int lvl, int state, int line, string newLine, string message) = Msg {0}, Level {1}, State {2}, Line {3}{4}{5}
|
||||
|
||||
QueryServiceQueryFailed(string message) = Query failed: {0}
|
||||
|
||||
QueryServiceColumnNull = (No column name)
|
||||
|
||||
QueryServiceCellNull = NULL
|
||||
|
||||
QueryServiceRequestsNoQuery = The requested query does not exist
|
||||
|
||||
QueryServiceQueryInvalidOwnerUri = This editor is not connected to a database
|
||||
|
||||
QueryServiceQueryInProgress = A query is already in progress for this editor session. Please cancel this query or wait for its completion.
|
||||
|
||||
QueryServiceMessageSenderNotSql = Sender for OnInfoMessage event must be a SqlConnection
|
||||
|
||||
QueryServiceResultSetAddNoRows = Cannot add row to result buffer, data reader does not contain rows
|
||||
|
||||
QueryServiceResultSetHasNoResults = Query has no results to return
|
||||
|
||||
QueryServiceResultSetTooLarge = Result set has too many rows to be safely loaded
|
||||
|
||||
### Save As Requests
|
||||
|
||||
QueryServiceSaveAsResultSetNotComplete = Result cannot be saved until query execution has completed
|
||||
|
||||
QueryServiceSaveAsMiscStartingError = Internal error occurred while starting save task
|
||||
|
||||
QueryServiceSaveAsInProgress = A save request to the same path is in progress
|
||||
|
||||
QueryServiceSaveAsFail(string fileName, string message) = Failed to save {0}: {1}
|
||||
|
||||
### MISC
|
||||
|
||||
QueryServiceResultSetNotRead = Cannot read subset unless the results have been read from the server
|
||||
|
||||
QueryServiceResultSetStartRowOutOfRange = Start row cannot be less than 0 or greater than the number of rows in the result set
|
||||
|
||||
QueryServiceResultSetRowCountOutOfRange = Row count must be a positive integer
|
||||
|
||||
QueryServiceResultSetNoColumnSchema = Could not retrieve column schema for result set
|
||||
|
||||
QueryServiceExecutionPlanNotFound = Could not retrieve an execution plan from the result set
|
||||
|
||||
############################################################################
|
||||
# Language Service
|
||||
|
||||
PeekDefinitionAzureError(string errorMessage) = This feature is currently not supported on Azure SQL DB and Data Warehouse: {0}
|
||||
|
||||
PeekDefinitionError(string errorMessage) = An unexpected error occurred during Peek Definition execution: {0}
|
||||
|
||||
PeekDefinitionNoResultsError = No results were found.
|
||||
|
||||
PeekDefinitionDatabaseError = No database object was retrieved.
|
||||
|
||||
PeekDefinitionNotConnectedError = Please connect to a server.
|
||||
|
||||
PeekDefinitionTimedoutError = Operation timed out.
|
||||
|
||||
PeekDefinitionTypeNotSupportedError = This object type is currently not supported by this feature.
|
||||
|
||||
ErrorEmptyStringReplacement = Replacement of an empty string by an empty string.
|
||||
|
||||
############################################################################
|
||||
# Workspace Service
|
||||
|
||||
WorkspaceServicePositionLineOutOfRange = Position is outside of file line range
|
||||
|
||||
WorkspaceServicePositionColumnOutOfRange(int line) = Position is outside of column range for line {0}
|
||||
|
||||
WorkspaceServiceBufferPositionOutOfOrder(int sLine, int sCol, int eLine, int eCol) = Start position ({0}, {1}) must come before or be equal to the end position ({2}, {3})
|
||||
|
||||
############################################################################
|
||||
# Edit Data Service
|
||||
|
||||
EditDataObjectNotFound = Table or view requested for edit could not be found
|
||||
|
||||
EditDataSessionNotFound = Edit session does not exist.
|
||||
|
||||
EditDataSessionAlreadyExists = Edit session already exists.
|
||||
|
||||
EditDataSessionNotInitialized = Edit session has not been initialized
|
||||
|
||||
EditDataSessionAlreadyInitialized = Edit session has already been initialized
|
||||
|
||||
EditDataSessionAlreadyInitializing = Edit session has already been initialized or is in the process of initializing
|
||||
|
||||
EditDataMetadataNotExtended = Table metadata does not have extended properties
|
||||
|
||||
EditDataMetadataObjectNameRequired = A object name must be provided
|
||||
|
||||
EditDataMetadataTooManyIdentifiers = Explicitly specifying server or database is not supported
|
||||
|
||||
EditDataFilteringNegativeLimit = Result limit cannot be negative
|
||||
|
||||
EditDataUnsupportedObjectType(string typeName) = Database object {0} cannot be used for editing.
|
||||
|
||||
EditDataQueryFailed = Query execution failed, see messages for details
|
||||
|
||||
EditDataQueryNotCompleted = Query has not completed execution
|
||||
|
||||
EditDataQueryImproperResultSets = Query did not generate exactly one result set
|
||||
|
||||
EditDataFailedAddRow = Failed to add new row to update cache
|
||||
|
||||
EditDataRowOutOfRange = Given row ID is outside the range of rows in the edit cache
|
||||
|
||||
EditDataUpdatePending = An update is already pending for this row and must be reverted first
|
||||
|
||||
EditDataUpdateNotPending = Given row ID does not have pending update
|
||||
|
||||
EditDataObjectMetadataNotFound = Table or view metadata could not be found
|
||||
|
||||
EditDataInvalidFormat(string colName, string colType) = Invalid format for column '{0}', column is defined as {1}
|
||||
|
||||
EditDataInvalidFormatBinary = Invalid format for binary column
|
||||
|
||||
EditDataInvalidFormatBoolean = Allowed values for boolean columns are 0, 1, "true", or "false"
|
||||
|
||||
EditDataCreateScriptMissingValue(string colName) = The column '{0}' is defined as NOT NULL but was not given a value
|
||||
|
||||
EditDataDeleteSetCell = A delete is pending for this row, a cell update cannot be applied.
|
||||
|
||||
EditDataColumnIdOutOfRange = Column ID must be in the range of columns for the query
|
||||
|
||||
EditDataColumnCannotBeEdited = Column cannot be edited
|
||||
|
||||
EditDataColumnNoKeyColumns = No key columns were found
|
||||
|
||||
EditDataScriptFilePathNull = An output filename must be provided
|
||||
|
||||
EditDataCommitInProgress = A commit task is in progress. Please wait for completion.
|
||||
|
||||
EditDataComputedColumnPlaceholder = <TBD>
|
||||
|
||||
EditDataTimeOver24Hrs = TIME column values must be between 00:00:00.0000000 and 23:59:59.9999999
|
||||
|
||||
EditDataNullNotAllowed = NULL is not allowed for this column
|
||||
|
||||
EditDataValueTooLarge(string value, string columnType) = Value {0} is too large to fit in column of type {1}
|
||||
|
||||
############################################################################
|
||||
# DacFx Resources
|
||||
|
||||
EE_BatchSqlMessageNoProcedureInfo = Msg {0}, Level {1}, State {2}, Line {3}
|
||||
|
||||
EE_BatchSqlMessageWithProcedureInfo = Msg {0}, Level {1}, State {2}, Procedure {3}, Line {4}
|
||||
|
||||
EE_BatchSqlMessageNoLineInfo = Msg {0}, Level {1}, State {2}
|
||||
|
||||
EE_BatchError_Exception = An error occurred while the batch was being processed. The error message is: {0}
|
||||
|
||||
EE_BatchExecutionInfo_RowsAffected = ({0} row(s) affected)
|
||||
|
||||
EE_ExecutionNotYetCompleteError = The previous execution is not yet complete.
|
||||
|
||||
EE_ScriptError_Error = A scripting error occurred.
|
||||
|
||||
EE_ScriptError_ParsingSyntax = Incorrect syntax was encountered while {0} was being parsed.
|
||||
|
||||
EE_ScriptError_FatalError = A fatal error occurred.
|
||||
|
||||
EE_ExecutionInfo_FinalizingLoop = Batch execution completed {0} times...
|
||||
|
||||
EE_ExecutionInfo_QueryCancelledbyUser = You cancelled the query.
|
||||
|
||||
EE_BatchExecutionError_Halting = An error occurred while the batch was being executed.
|
||||
|
||||
EE_BatchExecutionError_Ignoring = An error occurred while the batch was being executed, but the error has been ignored.
|
||||
|
||||
EE_ExecutionInfo_InitializingLoop = Beginning execution loop
|
||||
|
||||
EE_ExecutionError_CommandNotSupported = Command {0} is not supported.
|
||||
|
||||
EE_ExecutionError_VariableNotFound = The variable {0} could not be found.
|
||||
|
||||
BatchParserWrapperExecutionEngineError = SQL Execution error: {0}
|
||||
|
||||
BatchParserWrapperExecutionError = Batch parser wrapper execution: {0} found... at line {1}: {2} Description: {3}
|
||||
|
||||
BatchParserWrapperExecutionEngineBatchMessage = Batch parser wrapper execution engine batch message received: Message: {0} Detailed message: {1}
|
||||
|
||||
BatchParserWrapperExecutionEngineBatchResultSetProcessing = Batch parser wrapper execution engine batch ResultSet processing: DataReader.FieldCount: {0} DataReader.RecordsAffected: {1}
|
||||
|
||||
BatchParserWrapperExecutionEngineBatchResultSetFinished = Batch parser wrapper execution engine batch ResultSet finished.
|
||||
|
||||
BatchParserWrapperExecutionEngineBatchCancelling = Canceling batch parser wrapper batch execution.
|
||||
|
||||
EE_ScriptError_Warning = Scripting warning.
|
||||
|
||||
TroubleshootingAssistanceMessage = For more information about this error, see the troubleshooting topics in the product documentation.
|
||||
|
||||
BatchParser_CircularReference = File '{0}' recursively included.
|
||||
|
||||
BatchParser_CommentNotTerminated = Missing end comment mark '*/'.
|
||||
|
||||
BatchParser_StringNotTerminated = Unclosed quotation mark after the character string.
|
||||
|
||||
BatchParser_IncorrectSyntax = Incorrect syntax was encountered while parsing '{0}'.
|
||||
|
||||
BatchParser_VariableNotDefined = Variable {0} is not defined.
|
||||
|
||||
############################################################################
|
||||
# Workspace Service
|
||||
|
||||
TestLocalizationConstant = test
|
||||
|
||||
############################################################################
|
||||
# Utilities
|
||||
|
||||
SqlScriptFormatterDecimalMissingPrecision = Exact numeric column is missing numeric precision or numeric scale
|
||||
|
||||
SqlScriptFormatterLengthTypeMissingSize = Column with length is missing size
|
||||
|
||||
SqlScriptFormatterScalarTypeMissingScale = Scalar column missing scale
|
||||
|
||||
############################################################################
|
||||
# Object Explorer Service
|
||||
|
||||
TreeNodeError = Error expanding: {0}
|
||||
|
||||
ServerNodeConnectionError = Error connecting to {0}
|
||||
|
||||
SchemaHierarchy_Aggregates = Aggregates
|
||||
|
||||
SchemaHierarchy_ServerRoles = Server Roles
|
||||
|
||||
SchemaHierarchy_ApplicationRoles = Application Roles
|
||||
|
||||
SchemaHierarchy_Assemblies = Assemblies
|
||||
|
||||
SchemaHierarchy_AssemblyFiles = Assembly Files
|
||||
|
||||
SchemaHierarchy_AsymmetricKeys = Asymmetric Keys
|
||||
|
||||
SchemaHierarchy_DatabaseAsymmetricKeys = Asymmetric Keys
|
||||
|
||||
SchemaHierarchy_DataCompressionOptions = Data Compression Options
|
||||
|
||||
SchemaHierarchy_Certificates = Certificates
|
||||
|
||||
SchemaHierarchy_FileTables = FileTables
|
||||
|
||||
SchemaHierarchy_DatabaseCertificates = Certificates
|
||||
|
||||
SchemaHierarchy_CheckConstraints = Check Constraints
|
||||
|
||||
SchemaHierarchy_Columns = Columns
|
||||
|
||||
SchemaHierarchy_Constraints = Constraints
|
||||
|
||||
SchemaHierarchy_Contracts = Contracts
|
||||
|
||||
SchemaHierarchy_Credentials = Credentials
|
||||
|
||||
SchemaHierarchy_ErrorMessages = Error Messages
|
||||
|
||||
SchemaHierarchy_ServerRoleMembership = Server Role Membership
|
||||
|
||||
SchemaHierarchy_DatabaseOptions = Database Options
|
||||
|
||||
SchemaHierarchy_DatabaseRoles = Database Roles
|
||||
|
||||
SchemaHierarchy_RoleMemberships = Role Memberships
|
||||
|
||||
SchemaHierarchy_DatabaseTriggers = Database Triggers
|
||||
|
||||
SchemaHierarchy_DefaultConstraints = Default Constraints
|
||||
|
||||
SchemaHierarchy_Defaults = Defaults
|
||||
|
||||
SchemaHierarchy_Sequences = Sequences
|
||||
|
||||
SchemaHierarchy_Endpoints = Endpoints
|
||||
|
||||
SchemaHierarchy_EventNotifications = Event Notifications
|
||||
|
||||
SchemaHierarchy_ServerEventNotifications = Server Event Notifications
|
||||
|
||||
SchemaHierarchy_ExtendedProperties = Extended Properties
|
||||
|
||||
SchemaHierarchy_FileGroups = Filegroups
|
||||
|
||||
SchemaHierarchy_ForeignKeys = Foreign Keys
|
||||
|
||||
SchemaHierarchy_FullTextCatalogs = Full-Text Catalogs
|
||||
|
||||
SchemaHierarchy_FullTextIndexes = Full-Text Indexes
|
||||
|
||||
SchemaHierarchy_Functions = Functions
|
||||
|
||||
SchemaHierarchy_Indexes = Indexes
|
||||
|
||||
SchemaHierarchy_InlineFunctions = Inline Functions
|
||||
|
||||
SchemaHierarchy_Keys = Keys
|
||||
|
||||
SchemaHierarchy_LinkedServers = Linked Servers
|
||||
|
||||
SchemaHierarchy_LinkedServerLogins = Linked Server Logins
|
||||
|
||||
SchemaHierarchy_Logins = Logins
|
||||
|
||||
SchemaHierarchy_MasterKey = Master Key
|
||||
|
||||
SchemaHierarchy_MasterKeys = Master Keys
|
||||
|
||||
SchemaHierarchy_MessageTypes = Message Types
|
||||
|
||||
SchemaHierarchy_MultiSelectFunctions = Table-Valued Functions
|
||||
|
||||
SchemaHierarchy_Parameters = Parameters
|
||||
|
||||
SchemaHierarchy_PartitionFunctions = Partition Functions
|
||||
|
||||
SchemaHierarchy_PartitionSchemes = Partition Schemes
|
||||
|
||||
SchemaHierarchy_Permissions = Permissions
|
||||
|
||||
SchemaHierarchy_PrimaryKeys = Primary Keys
|
||||
|
||||
SchemaHierarchy_Programmability = Programmability
|
||||
|
||||
SchemaHierarchy_Queues = Queues
|
||||
|
||||
SchemaHierarchy_RemoteServiceBindings = Remote Service Bindings
|
||||
|
||||
SchemaHierarchy_ReturnedColumns = Returned Columns
|
||||
|
||||
SchemaHierarchy_Roles = Roles
|
||||
|
||||
SchemaHierarchy_Routes = Routes
|
||||
|
||||
SchemaHierarchy_Rules = Rules
|
||||
|
||||
SchemaHierarchy_Schemas = Schemas
|
||||
|
||||
SchemaHierarchy_Security = Security
|
||||
|
||||
SchemaHierarchy_ServerObjects = Server Objects
|
||||
|
||||
SchemaHierarchy_Management = Management
|
||||
|
||||
SchemaHierarchy_ServerTriggers = Triggers
|
||||
|
||||
SchemaHierarchy_ServiceBroker = Service Broker
|
||||
|
||||
SchemaHierarchy_Services = Services
|
||||
|
||||
SchemaHierarchy_Signatures = Signatures
|
||||
|
||||
SchemaHierarchy_LogFiles = Log Files
|
||||
|
||||
SchemaHierarchy_Statistics = Statistics
|
||||
|
||||
SchemaHierarchy_Storage = Storage
|
||||
|
||||
SchemaHierarchy_StoredProcedures = Stored Procedures
|
||||
|
||||
SchemaHierarchy_SymmetricKeys = Symmetric Keys
|
||||
|
||||
SchemaHierarchy_Synonyms = Synonyms
|
||||
|
||||
SchemaHierarchy_Tables = Tables
|
||||
|
||||
SchemaHierarchy_Triggers = Triggers
|
||||
|
||||
SchemaHierarchy_Types = Types
|
||||
|
||||
SchemaHierarchy_UniqueKeys = Unique Keys
|
||||
|
||||
SchemaHierarchy_UserDefinedDataTypes = User-Defined Data Types
|
||||
|
||||
SchemaHierarchy_UserDefinedTypes = User-Defined Types (CLR)
|
||||
|
||||
SchemaHierarchy_Users = Users
|
||||
|
||||
SchemaHierarchy_Views = Views
|
||||
|
||||
SchemaHierarchy_XmlIndexes = XML Indexes
|
||||
|
||||
SchemaHierarchy_XMLSchemaCollections = XML Schema Collections
|
||||
|
||||
SchemaHierarchy_UserDefinedTableTypes = User-Defined Table Types
|
||||
|
||||
SchemaHierarchy_FilegroupFiles = Files
|
||||
|
||||
MissingCaption = Missing Caption
|
||||
|
||||
SchemaHierarchy_BrokerPriorities = Broker Priorities
|
||||
|
||||
SchemaHierarchy_CryptographicProviders = Cryptographic Providers
|
||||
|
||||
SchemaHierarchy_DatabaseAuditSpecifications = Database Audit Specifications
|
||||
|
||||
SchemaHierarchy_DatabaseEncryptionKeys = Database Encryption Keys
|
||||
|
||||
SchemaHierarchy_EventSessions = Event Sessions
|
||||
|
||||
SchemaHierarchy_FullTextStopLists = Full Text Stoplists
|
||||
|
||||
SchemaHierarchy_ResourcePools = Resource Pools
|
||||
|
||||
SchemaHierarchy_ServerAudits = Audits
|
||||
|
||||
SchemaHierarchy_ServerAuditSpecifications = Server Audit Specifications
|
||||
|
||||
SchemaHierarchy_SpatialIndexes = Spatial Indexes
|
||||
|
||||
SchemaHierarchy_WorkloadGroups = Workload Groups
|
||||
|
||||
SchemaHierarchy_SqlFiles = SQL Files
|
||||
|
||||
SchemaHierarchy_ServerFunctions = Server Functions
|
||||
|
||||
SchemaHierarchy_SqlType = SQL Type
|
||||
|
||||
SchemaHierarchy_ServerOptions = Server Options
|
||||
|
||||
SchemaHierarchy_DatabaseDiagrams = Database Diagrams
|
||||
|
||||
SchemaHierarchy_SystemTables = System Tables
|
||||
|
||||
SchemaHierarchy_Databases = Databases
|
||||
|
||||
SchemaHierarchy_SystemContracts = System Contracts
|
||||
|
||||
SchemaHierarchy_SystemDatabases = System Databases
|
||||
|
||||
SchemaHierarchy_SystemMessageTypes = System Message Types
|
||||
|
||||
SchemaHierarchy_SystemQueues = System Queues
|
||||
|
||||
SchemaHierarchy_SystemServices = System Services
|
||||
|
||||
SchemaHierarchy_SystemStoredProcedures = System Stored Procedures
|
||||
|
||||
SchemaHierarchy_SystemViews = System Views
|
||||
|
||||
SchemaHierarchy_DataTierApplications = Data-tier Applications
|
||||
|
||||
SchemaHierarchy_ExtendedStoredProcedures = Extended Stored Procedures
|
||||
|
||||
SchemaHierarchy_SystemAggregateFunctions = Aggregate Functions
|
||||
|
||||
SchemaHierarchy_SystemApproximateNumerics = Approximate Numerics
|
||||
|
||||
SchemaHierarchy_SystemBinaryStrings = Binary Strings
|
||||
|
||||
SchemaHierarchy_SystemCharacterStrings = Character Strings
|
||||
|
||||
SchemaHierarchy_SystemCLRDataTypes = CLR Data Types
|
||||
|
||||
SchemaHierarchy_SystemConfigurationFunctions = Configuration Functions
|
||||
|
||||
SchemaHierarchy_SystemCursorFunctions = Cursor Functions
|
||||
|
||||
SchemaHierarchy_SystemDataTypes = System Data Types
|
||||
|
||||
SchemaHierarchy_SystemDateAndTime = Date and Time
|
||||
|
||||
SchemaHierarchy_SystemDateAndTimeFunctions = Date and Time Functions
|
||||
|
||||
SchemaHierarchy_SystemExactNumerics = Exact Numerics
|
||||
|
||||
SchemaHierarchy_SystemFunctions = System Functions
|
||||
|
||||
SchemaHierarchy_SystemHierarchyIdFunctions = Hierarchy Id Functions
|
||||
|
||||
SchemaHierarchy_SystemMathematicalFunctions = Mathematical Functions
|
||||
|
||||
SchemaHierarchy_SystemMetadataFunctions = Metadata Functions
|
||||
|
||||
SchemaHierarchy_SystemOtherDataTypes = Other Data Types
|
||||
|
||||
SchemaHierarchy_SystemOtherFunctions = Other Functions
|
||||
|
||||
SchemaHierarchy_SystemRowsetFunctions = Rowset Functions
|
||||
|
||||
SchemaHierarchy_SystemSecurityFunctions = Security Functions
|
||||
|
||||
SchemaHierarchy_SystemSpatialDataTypes = Spatial Data Types
|
||||
|
||||
SchemaHierarchy_SystemStringFunctions = String Functions
|
||||
|
||||
SchemaHierarchy_SystemSystemStatisticalFunctions = System Statistical Functions
|
||||
|
||||
SchemaHierarchy_SystemTextAndImageFunctions = Text and Image Functions
|
||||
|
||||
SchemaHierarchy_SystemUnicodeCharacterStrings = Unicode Character Strings
|
||||
|
||||
SchemaHierarchy_AggregateFunctions = Aggregate Functions
|
||||
|
||||
SchemaHierarchy_ScalarValuedFunctions = Scalar-valued Functions
|
||||
|
||||
SchemaHierarchy_TableValuedFunctions = Table-valued Functions
|
||||
|
||||
SchemaHierarchy_SystemExtendedStoredProcedures = System Extended Stored Procedures
|
||||
|
||||
SchemaHierarchy_BuiltInType = Built-in Types
|
||||
|
||||
SchemaHierarchy_BuiltInServerRole = Built-in Server Roles
|
||||
|
||||
SchemaHierarchy_UserWithPassword = User with Password
|
||||
|
||||
SchemaHierarchy_SearchPropertyList = Search Property List
|
||||
|
||||
SchemaHierarchy_SecurityPolicies = Security Policies
|
||||
|
||||
SchemaHierarchy_SecurityPredicates = Security Predicates
|
||||
|
||||
SchemaHierarchy_ServerRole = Server Role
|
||||
|
||||
SchemaHierarchy_SearchPropertyLists = Search Property Lists
|
||||
|
||||
SchemaHierarchy_ColumnStoreIndexes = Column Store Indexes
|
||||
|
||||
SchemaHierarchy_TableTypeIndexes = Table Type Indexes
|
||||
|
||||
SchemaHierarchy_Server = Server
|
||||
|
||||
SchemaHierarchy_SelectiveXmlIndexes = Selective XML Indexes
|
||||
|
||||
SchemaHierarchy_XmlNamespaces = XML Namespaces
|
||||
|
||||
SchemaHierarchy_XmlTypedPromotedPaths = XML Typed Promoted Paths
|
||||
|
||||
SchemaHierarchy_SqlTypedPromotedPaths = T-SQL Typed Promoted Paths
|
||||
|
||||
SchemaHierarchy_DatabaseScopedCredentials = Database Scoped Credentials
|
||||
|
||||
SchemaHierarchy_ExternalDataSources = External Data Sources
|
||||
|
||||
SchemaHierarchy_ExternalFileFormats = External File Formats
|
||||
|
||||
SchemaHierarchy_ExternalResources = External Resources
|
||||
|
||||
SchemaHierarchy_ExternalTables = External Tables
|
||||
|
||||
SchemaHierarchy_AlwaysEncryptedKeys = Always Encrypted Keys
|
||||
|
||||
SchemaHierarchy_ColumnMasterKeys = Column Master Keys
|
||||
|
||||
SchemaHierarchy_ColumnEncryptionKeys = Column Encryption Keys
|
||||
|
||||
SchemaHierarchy_SubroutineParameterLabelFormatString = {0} ({1}, {2}, {3})
|
||||
|
||||
SchemaHierarchy_SubroutineParameterNoDefaultLabel = No default
|
||||
|
||||
SchemaHierarchy_SubroutineParameterInputLabel = Input
|
||||
|
||||
SchemaHierarchy_SubroutineParameterInputOutputLabel = Input/Output
|
||||
|
||||
SchemaHierarchy_SubroutineParameterInputReadOnlyLabel = Input/ReadOnly
|
||||
|
||||
SchemaHierarchy_SubroutineParameterInputOutputReadOnlyLabel = Input/Output/ReadOnly
|
||||
|
||||
SchemaHierarchy_SubroutineParameterDefaultLabel = Default
|
||||
|
||||
SchemaHierarchy_NullColumn_Label = null
|
||||
|
||||
SchemaHierarchy_NotNullColumn_Label = not null
|
||||
|
||||
SchemaHierarchy_UDDTLabelWithType = {0} ({1}, {2})
|
||||
|
||||
SchemaHierarchy_UDDTLabelWithoutType = {0} ({1})
|
||||
|
||||
SchemaHierarchy_ComputedColumnLabelWithType = {0} ({1}Computed, {2}, {3})
|
||||
|
||||
SchemaHierarchy_ComputedColumnLabelWithoutType = {0} ({1}Computed)
|
||||
|
||||
SchemaHierarchy_ColumnSetLabelWithoutType = {0} (Column Set, {1})
|
||||
|
||||
SchemaHierarchy_ColumnSetLabelWithType = {0} (Column Set, {1}{2}, {3})
|
||||
|
||||
SchemaHierarchy_ColumnSetLabelWithTypeAndKeyString = {0} (Column Set, {1}, {2}, {3})
|
||||
|
||||
UniqueIndex_LabelPart = Unique
|
||||
|
||||
NonUniqueIndex_LabelPart = Non-Unique
|
||||
|
||||
ClusteredIndex_LabelPart = Clustered
|
||||
|
||||
NonClusteredIndex_LabelPart = Non-Clustered
|
||||
|
||||
History_LabelPart = History
|
||||
|
||||
SystemVersioned_LabelPart = System-Versioned
|
||||
|
||||
External_LabelPart = External
|
||||
|
||||
FileTable_LabelPart = File Table
|
||||
|
||||
DatabaseNotAccessible = The database {0} is not accessible.
|
||||
|
||||
|
||||
############################################################################
|
||||
# Scripting Service
|
||||
|
||||
ScriptingParams_ConnectionString_Property_Invalid = Error parsing ScriptingParams.ConnectionString property.
|
||||
|
||||
ScriptingParams_FilePath_Property_Invalid = Invalid directory specified by the ScriptingParams.FilePath property.
|
||||
|
||||
ScriptingListObjectsCompleteParams_ConnectionString_Property_Invalid = Error parsing ScriptingListObjectsCompleteParams.ConnectionString property.
|
||||
|
||||
|
||||
StoredProcedureScriptParameterComment = -- TODO: Set parameter values here.
|
||||
|
||||
ScriptingGeneralError = An error occurred while scripting the objects.
|
||||
ScriptingExecuteNotSupportedError = Scripting as Execute is only supported for Stored Procedures
|
||||
|
||||
############################################################################
|
||||
# Admin Service
|
||||
|
||||
unavailable = Unavailable
|
||||
filegroup_dialog_defaultFilegroup = Current default filegroup: {0}
|
||||
filegroup_dialog_title = New Filegroup for {0}
|
||||
filegroups_default = Default
|
||||
filegroups_files = Files
|
||||
filegroups_name = Name
|
||||
filegroups_readonly = Read-Only
|
||||
general_autogrowth = Autogrowth / Maxsize
|
||||
general_builderText = ...
|
||||
general_default = <default>
|
||||
general_fileGroup = Filegroup
|
||||
general_fileName = Logical Name
|
||||
general_fileType = File Type
|
||||
general_initialSize = Initial Size (MB)
|
||||
general_newFilegroup = <new filegroup>
|
||||
general_path = Path
|
||||
general_physicalFileName = File Name
|
||||
general_rawDevice = <raw device>
|
||||
general_recoveryModel_bulkLogged = Bulk-logged
|
||||
general_recoveryModel_full = Full
|
||||
general_recoveryModel_simple = Simple
|
||||
general_titleSearchOwner = Select Database Owner
|
||||
|
||||
prototype_autogrowth_disabled = None
|
||||
prototype_autogrowth_restrictedGrowthByMB = By {0} MB, Limited to {1} MB
|
||||
prototype_autogrowth_restrictedGrowthByPercent = By {0} percent, Limited to {1} MB
|
||||
prototype_autogrowth_unrestrictedGrowthByMB = By {0} MB, Unlimited
|
||||
prototype_autogrowth_unrestrictedGrowthByPercent = By {0} percent, Unlimited
|
||||
prototype_autogrowth_unlimitedfilestream = Unlimited
|
||||
prototype_autogrowth_limitedfilestream = Limited to {0} MB
|
||||
prototype_db_category_automatic = Automatic
|
||||
prototype_db_category_servicebroker = Service Broker
|
||||
prototype_db_category_collation = Collation
|
||||
prototype_db_category_cursor = Cursor
|
||||
prototype_db_category_misc = Miscellaneous
|
||||
prototype_db_category_recovery = Recovery
|
||||
prototype_db_category_state = State
|
||||
prototype_db_prop_ansiNullDefault = ANSI NULL Default
|
||||
prototype_db_prop_ansiNulls = ANSI NULLS Enabled
|
||||
prototype_db_prop_ansiPadding = ANSI Padding Enabled
|
||||
prototype_db_prop_ansiWarnings = ANSI Warnings Enabled
|
||||
prototype_db_prop_arithabort = Arithmetic Abort Enabled
|
||||
prototype_db_prop_autoClose = Auto Close
|
||||
prototype_db_prop_autoCreateStatistics = Auto Create Statistics
|
||||
prototype_db_prop_autoShrink = Auto Shrink
|
||||
prototype_db_prop_autoUpdateStatistics = Auto Update Statistics
|
||||
prototype_db_prop_autoUpdateStatisticsAsync = Auto Update Statistics Asynchronously
|
||||
prototype_db_prop_caseSensitive = Case Sensitive
|
||||
prototype_db_prop_closeCursorOnCommit = Close Cursor on Commit Enabled
|
||||
prototype_db_prop_collation = Collation
|
||||
prototype_db_prop_concatNullYieldsNull = Concatenate Null Yields Null
|
||||
prototype_db_prop_databaseCompatibilityLevel = Database Compatibility Level
|
||||
prototype_db_prop_databaseState = Database State
|
||||
prototype_db_prop_defaultCursor = Default Cursor
|
||||
prototype_db_prop_fullTextIndexing = Full-Text Indexing Enabled
|
||||
prototype_db_prop_numericRoundAbort = Numeric Round-Abort
|
||||
prototype_db_prop_pageVerify = Page Verify
|
||||
prototype_db_prop_quotedIdentifier = Quoted Identifiers Enabled
|
||||
prototype_db_prop_readOnly = Database Read-Only
|
||||
prototype_db_prop_recursiveTriggers = Recursive Triggers Enabled
|
||||
prototype_db_prop_restrictAccess = Restrict Access
|
||||
prototype_db_prop_selectIntoBulkCopy = Select Into/Bulk Copy
|
||||
prototype_db_prop_honorBrokerPriority = Honor Broker Priority
|
||||
prototype_db_prop_serviceBrokerGuid = Service Broker Identifier
|
||||
prototype_db_prop_brokerEnabled = Broker Enabled
|
||||
prototype_db_prop_truncateLogOnCheckpoint = Truncate Log on Checkpoint
|
||||
prototype_db_prop_dbChaining = Cross-database Ownership Chaining Enabled
|
||||
prototype_db_prop_trustworthy = Trustworthy
|
||||
prototype_db_prop_dateCorrelationOptimization = Date Correlation Optimization Enabled
|
||||
prototype_db_prop_parameterization = Parameterization
|
||||
prototype_db_prop_parameterization_value_forced = Forced
|
||||
prototype_db_prop_parameterization_value_simple = Simple
|
||||
prototype_file_dataFile = ROWS Data
|
||||
prototype_file_logFile = LOG
|
||||
prototype_file_filestreamFile = FILESTREAM Data
|
||||
prototype_file_noFileGroup = Not Applicable
|
||||
prototype_file_defaultpathstring = <default path>
|
||||
title_openConnectionsMustBeClosed = Open Connections
|
||||
warning_openConnectionsMustBeClosed=To change the database properties, SQL Server must close all other connections to the database_ Are you sure you want to change the properties and close all other connections?
|
||||
prototype_db_prop_databaseState_value_autoClosed = AUTO_CLOSED
|
||||
prototype_db_prop_databaseState_value_emergency = EMERGENCY
|
||||
prototype_db_prop_databaseState_value_inaccessible = INACCESSIBLE
|
||||
prototype_db_prop_databaseState_value_normal = NORMAL
|
||||
prototype_db_prop_databaseState_value_offline = OFFLINE
|
||||
prototype_db_prop_databaseState_value_recovering = RECOVERING
|
||||
prototype_db_prop_databaseState_value_recoveryPending = RECOVERY PENDING
|
||||
prototype_db_prop_databaseState_value_restoring = RESTORING
|
||||
prototype_db_prop_databaseState_value_shutdown=SHUTDOWN
|
||||
prototype_db_prop_databaseState_value_standby = STANDBY
|
||||
prototype_db_prop_databaseState_value_suspect = SUSPECT
|
||||
prototype_db_prop_defaultCursor_value_global = GLOBAL
|
||||
prototype_db_prop_defaultCursor_value_local = LOCAL
|
||||
prototype_db_prop_restrictAccess_value_multiple = MULTI_USER
|
||||
prototype_db_prop_restrictAccess_value_restricted = RESTRICTED_USER
|
||||
prototype_db_prop_restrictAccess_value_single = SINGLE_USER
|
||||
prototype_db_prop_pageVerify_value_checksum = CHECKSUM
|
||||
prototype_db_prop_pageVerify_value_none = NONE
|
||||
prototype_db_prop_pageVerify_value_tornPageDetection = TORN_PAGE_DETECTION
|
||||
prototype_db_prop_varDecimalEnabled = VarDecimal Storage Format Enabled
|
||||
compatibilityLevel_katmai = SQL Server 2008 (100)
|
||||
prototype_db_prop_encryptionEnabled = Encryption Enabled
|
||||
prototype_db_prop_databasescopedconfig_value_off = OFF
|
||||
prototype_db_prop_databasescopedconfig_value_on = ON
|
||||
prototype_db_prop_databasescopedconfig_value_primary = PRIMARY
|
||||
error_db_prop_invalidleadingColumns = For the distribution policy HASH, the number of leading hash columns is optional but should be from 1 to 16 columns
|
||||
compatibilityLevel_denali = SQL Server 2012 (110)
|
||||
compatibilityLevel_sql14 = SQL Server 2014 (120)
|
||||
compatibilityLevel_sql15 = SQL Server 2016 (130)
|
||||
compatibilityLevel_sqlvNext = SQL Server vNext (140)
|
||||
general_containmentType_None = None
|
||||
general_containmentType_Partial = Partial
|
||||
filegroups_filestreamFiles = FILESTREAM Files
|
||||
prototype_file_noApplicableFileGroup = No Applicable Filegroup
|
||||
NeverBackedUp = Never
|
||||
Error_InvalidDirectoryName = Path {0} is not a valid directory
|
||||
Error_ExistingDirectoryName = For directory {0} a file with name {1} already exists
|
||||
|
||||
############################################################################
|
||||
# Backup Service
|
||||
BackupTaskName = Backup Database
|
||||
|
||||
# Backup File Validation Errors
|
||||
BackupPathIsFolderError = Please provide a file path instead of directory path
|
||||
InvalidBackupPathError = The provided path is invalid
|
||||
|
||||
############################################################################
|
||||
# Task Service
|
||||
TaskInProgress = In progress
|
||||
TaskCompleted = Completed
|
||||
|
||||
###########################################################################
|
||||
# Restore
|
||||
ConflictWithNoRecovery = Specifying this option when restoring a backup with the NORECOVERY option is not permitted.
|
||||
InvalidPathForDatabaseFile = Invalid path for database file: '{0}'
|
||||
Log = Log
|
||||
RestorePlanFailed = Failed to create restore plan
|
||||
RestoreNotSupported = Restore database is not supported
|
||||
RestoreTaskName = Restore Database
|
||||
RestoreCopyOnly = (Copy Only)
|
||||
RestoreBackupSetComponent = Component
|
||||
RestoreBackupSetName = Name
|
||||
RestoreBackupSetType = Type
|
||||
RestoreBackupSetServer = Server
|
||||
RestoreBackupSetDatabase = Database
|
||||
RestoreBackupSetPosition = Position
|
||||
RestoreBackupSetFirstLsn = First LSN
|
||||
RestoreBackupSetLastLsn = Last LSN
|
||||
RestoreBackupSetCheckpointLsn = Checkpoint LSN
|
||||
RestoreBackupSetFullLsn = Full LSN
|
||||
RestoreBackupSetStartDate = Start Date
|
||||
RestoreBackupSetFinishDate = Finish Date
|
||||
RestoreBackupSetSize = Size
|
||||
RestoreBackupSetUserName = User Name
|
||||
RestoreBackupSetExpiration = Expiration
|
||||
TheLastBackupTaken = The last backup taken ({0})
|
||||
NoBackupsetsToRestore = No backupset selected to be restored
|
||||
|
||||
############################################################################
|
||||
# Generate Script
|
||||
ScriptTaskName = scripting
|
||||
|
||||
############################################################################
|
||||
# File Browser Validation Errors
|
||||
InvalidPathError = Cannot access the specified path on the server: {0}
|
||||
|
||||
############################################################################
|
||||
# Profiler
|
||||
ProfilerConnectionNotFound = Connection not found
|
||||
2358
src/Microsoft.SqlTools.CoreServices/Localization/sr.xlf
Normal file
2358
src/Microsoft.SqlTools.CoreServices/Localization/sr.xlf
Normal file
File diff suppressed because it is too large
Load Diff
489
src/Microsoft.SqlTools.CoreServices/Localization/sr.zh-hans.resx
Normal file
489
src/Microsoft.SqlTools.CoreServices/Localization/sr.zh-hans.resx
Normal file
@@ -0,0 +1,489 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype"><value>text/microsoft-resx</value></resheader><resheader name="version"><value>1.3</value></resheader><resheader name="reader"><value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><resheader name="writer"><value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><data name="ConnectionServiceConnectErrorNullParams"><value>连接参数不能为 null</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNullOwnerUri"><value>OwnerUri 不能为 null 或为空</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNotConnected"><value>SpecifiedUri '{0}' 没有已有的连接</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidAuthType"><value>AuthenticationType 值"{0}" 无效。 有效值为 'Integrated' 和 'SqlLogin'。</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidIntent"><value>'{0}' 为无效的ApplicationIntent值。 有效值为 'ReadWrite' 和 'ReadOnly'。</value></data>
|
||||
<data name="ConnectionServiceConnectionCanceled"><value>连接已取消</value></data>
|
||||
<data name="ConnectionParamsValidateNullOwnerUri"><value>OwnerUri 不能为 null 或为空</value></data>
|
||||
<data name="ConnectionParamsValidateNullConnection"><value>连接详细信息的对象不能为 null</value></data>
|
||||
<data name="ConnectionParamsValidateNullServerName"><value>ServerName 不能是 null 或是空白</value></data>
|
||||
<data name="ConnectionParamsValidateNullSqlAuth"><value>使用 SqlLogin 身份验证时,{0} 不可是 null 或是空</value></data>
|
||||
<data name="QueryServiceCancelAlreadyCompleted"><value>查询已完成,无法取消</value></data>
|
||||
<data name="QueryServiceCancelDisposeFailed"><value>查询成功取消,无法处理查询。找不到 URI 的所有者。</value></data>
|
||||
<data name="QueryServiceQueryCancelled"><value>查询已被用户取消</value></data>
|
||||
<data name="QueryServiceSubsetBatchNotCompleted"><value>该批处理尚未完成</value></data>
|
||||
<data name="QueryServiceSubsetBatchOutOfRange"><value>批量索引不能小于 0 或大于批量的总数</value></data>
|
||||
<data name="QueryServiceSubsetResultSetOutOfRange"><value>结果集索引不能小于 0 或大于结果集的总数</value></data>
|
||||
<data name="QueryServiceDataReaderByteCountInvalid"><value>返回的最大字节数必须大于零</value></data>
|
||||
<data name="QueryServiceDataReaderCharCountInvalid"><value>返回的最大字符数必须大于零</value></data>
|
||||
<data name="QueryServiceDataReaderXmlCountInvalid"><value>返回的 XML 最大字节数必须大于零</value></data>
|
||||
<data name="QueryServiceFileWrapperWriteOnly"><value>访问方法不能设置为”只写“</value></data>
|
||||
<data name="QueryServiceFileWrapperNotInitialized"><value>在执行操作之前,必须初始化 FileStreamWrapper</value></data>
|
||||
<data name="QueryServiceFileWrapperReadOnly"><value>该 FileStreamWrapper 不能用于写入</value></data>
|
||||
<data name="QueryServiceAffectedOneRow"><value>(1 行受到影响)</value></data>
|
||||
<data name="QueryServiceAffectedRows"><value>(影响 {0} 行)</value></data>
|
||||
<data name="QueryServiceCompletedSuccessfully"><value>命令已成功完成。</value></data>
|
||||
<data name="QueryServiceErrorFormat"><value>Msg {0},级别 {1},状态 {2},第 {3} {4} {5} 行</value></data>
|
||||
<data name="QueryServiceQueryFailed"><value>查询失败︰ {0}</value></data>
|
||||
<data name="QueryServiceColumnNull"><value>(没有列名称)</value></data>
|
||||
<data name="QueryServiceRequestsNoQuery"><value>请求的查询不存在。</value></data>
|
||||
<data name="QueryServiceQueryInvalidOwnerUri"><value>此编辑器未连接到数据库</value></data>
|
||||
<data name="QueryServiceQueryInProgress"><value>此编辑器会话已有正在进行中的查询。请取消这项查询,或等待它完成</value></data>
|
||||
<data name="QueryServiceMessageSenderNotSql"><value>OnInfoMessage 事件的发送者必须是 SqlConnection</value></data>
|
||||
<data name="QueryServiceSaveAsResultSetNotComplete"><value>查询完成前,不能保存结果</value></data>
|
||||
<data name="QueryServiceSaveAsMiscStartingError"><value>保存任务时发生内部错误</value></data>
|
||||
<data name="QueryServiceSaveAsInProgress"><value>相同路径的保存请求正在进行中</value></data>
|
||||
<data name="QueryServiceSaveAsFail"><value>未能保存 {0}: {1}</value></data>
|
||||
<data name="QueryServiceResultSetNotRead"><value>没有从服务器读取结果之前,无法读取子数据集</value></data>
|
||||
<data name="QueryServiceResultSetStartRowOutOfRange"><value>起始行不能小于 0 或大于结果集中的行数</value></data>
|
||||
<data name="QueryServiceResultSetRowCountOutOfRange"><value>行数必须是一个正整数</value></data>
|
||||
<data name="QueryServiceResultSetNoColumnSchema"><value>未能从结果集获取列架构</value></data>
|
||||
<data name="QueryServiceExecutionPlanNotFound"><value>未能从结果集获取执行计划</value></data>
|
||||
<data name="PeekDefinitionAzureError"><value>这功能目前不支持 Azure SQL DB 和数据仓库︰ {0}</value></data>
|
||||
<data name="PeekDefinitionError"><value>查看定义的执行过程中出现意外的错误︰ {0}</value></data>
|
||||
<data name="PeekDefinitionNoResultsError"><value>未找到结果。</value></data>
|
||||
<data name="PeekDefinitionDatabaseError"><value>检索不到任何数据库对象。</value></data>
|
||||
<data name="PeekDefinitionNotConnectedError"><value>请连接到服务器。</value></data>
|
||||
<data name="PeekDefinitionTimedoutError"><value>操作超时。</value></data>
|
||||
<data name="PeekDefinitionTypeNotSupportedError"><value>此功能当前不支持此对象类型。</value></data>
|
||||
<data name="WorkspaceServicePositionLineOutOfRange"><value>位置超出文件行范围</value></data>
|
||||
<data name="WorkspaceServicePositionColumnOutOfRange"><value>第 {0} 行位置超出数据列范围</value></data>
|
||||
<data name="WorkspaceServiceBufferPositionOutOfOrder"><value>起始位置 ({0},{1}) 必须先于或等于结束位置 ({2},{3})</value></data>
|
||||
<data name="EE_BatchSqlMessageNoProcedureInfo"><value>Msg {0},级别 {1} ,状态 {2},第 {3} 行</value></data>
|
||||
<data name="EE_BatchSqlMessageWithProcedureInfo"><value>Msg {0},级别 {1},状态 {2},过程 {3},第 {4} 行</value></data>
|
||||
<data name="EE_BatchSqlMessageNoLineInfo"><value>Msg {0},级别 {1},状态 {2}</value></data>
|
||||
<data name="EE_BatchError_Exception"><value>执行批处理时发生错误。错误消息︰ {0}</value></data>
|
||||
<data name="EE_BatchExecutionInfo_RowsAffected"><value>({0} 行受到影响)</value></data>
|
||||
<data name="EE_ExecutionNotYetCompleteError"><value>前一次执行尚未完成。</value></data>
|
||||
<data name="EE_ScriptError_Error"><value>出现脚本错误。</value></data>
|
||||
<data name="EE_ScriptError_ParsingSyntax"><value>正在分析 {0} 时发现语法错误。</value></data>
|
||||
<data name="EE_ScriptError_FatalError"><value>出现严重错误。</value></data>
|
||||
<data name="EE_ExecutionInfo_FinalizingLoop"><value>已执行完 {0} 次...</value></data>
|
||||
<data name="EE_ExecutionInfo_QueryCancelledbyUser"><value>您已取消查询。</value></data>
|
||||
<data name="EE_BatchExecutionError_Halting"><value>执行批次处理时发生错误。</value></data>
|
||||
<data name="EE_BatchExecutionError_Ignoring"><value>执行批次处理时发生错误,但该错误已被忽略。</value></data>
|
||||
<data name="EE_ExecutionInfo_InitializingLoop"><value>Beginning execution loop</value></data>
|
||||
<data name="EE_ExecutionError_CommandNotSupported"><value>不支持命令 {0}。</value></data>
|
||||
<data name="EE_ExecutionError_VariableNotFound"><value>找不到变量 {0}。</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineError"><value>SQL 执行错误︰ {0}</value></data>
|
||||
<data name="BatchParserWrapperExecutionError"><value>批处理解析封装器执行︰{0} 找到位于第 {1} 行: {2} 描述︰{3} </value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchMessage"><value>批处理解析封装器执行引擎所收到的消息︰ 消息︰ {0},详细的消息︰ {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetProcessing"><value>批处理解析封装器执行引擎批次结果集处理︰ DataReader.FieldCount: {0} DataReader.RecordsAffected: {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetFinished"><value>批处理解析封装器执行引擎批次处理结果集已完成。</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchCancelling"><value>正在取消批处理解析封装器的批处理执行。</value></data>
|
||||
<data name="EE_ScriptError_Warning"><value>脚本警告。</value></data>
|
||||
<data name="TroubleshootingAssistanceMessage"><value>有关此错误的详细信息,请参阅产品文档中的疑难解答主题。</value></data>
|
||||
<data name="BatchParser_CircularReference"><value>文件 '{0}' 被递归方式包含。</value></data>
|
||||
<data name="BatchParser_CommentNotTerminated"><value>缺少结束注释标记 '*/'。</value></data>
|
||||
<data name="BatchParser_StringNotTerminated"><value>未闭合的引号后的字符字串。</value></data>
|
||||
<data name="BatchParser_IncorrectSyntax"><value>'{0}' 在分析时发现语法错误。</value></data>
|
||||
<data name="BatchParser_VariableNotDefined"><value>未定义变量 {0}。</value></data>
|
||||
<data name="TestLocalizationConstant"><value>测试</value></data>
|
||||
<data name="ErrorEmptyStringReplacement"><value>用空字符串取代空字符串。</value></data>
|
||||
<data name="EditDataSessionNotFound"><value>编辑会话不存在</value></data>
|
||||
<data name="EditDataQueryNotCompleted"><value>查询尚未完成</value></data>
|
||||
<data name="EditDataQueryImproperResultSets"><value>查询并非产生单一结果集</value></data>
|
||||
<data name="EditDataFailedAddRow"><value>无法添加新数据行以更新缓存,操作失败</value></data>
|
||||
<data name="EditDataRowOutOfRange"><value>给定数据行 ID 已超出 edit cache 中数据行的范围</value></data>
|
||||
<data name="EditDataUpdatePending"><value>这个数据行已经有一个更新正在等待使用,因此它必须先恢复原状。</value></data>
|
||||
<data name="EditDataUpdateNotPending"><value>给定行 ID 没有正在等待的更新操作</value></data>
|
||||
<data name="EditDataObjectMetadataNotFound"><value>找不到表格或视图的元数据</value></data>
|
||||
<data name="EditDataInvalidFormatBinary"><value>二进制列格示错误</value></data>
|
||||
<data name="EditDataInvalidFormatBoolean"><value>Boolean 列必须填入数字 1 或 0, 或字符串 true 或 false</value></data>
|
||||
<data name="EditDataCreateScriptMissingValue"><value>必填单元格的值缺失</value></data>
|
||||
<data name="EditDataDeleteSetCell"><value>这行即将被删除,其中的单元格无法被更新</value></data>
|
||||
<data name="EditDataColumnIdOutOfRange"><value>列 ID 必须在数据列总数內才可被查询</value></data>
|
||||
<data name="EditDataColumnCannotBeEdited"><value>列无法被编辑</value></data>
|
||||
<data name="EditDataColumnNoKeyColumns"><value>找不到键列</value></data>
|
||||
<data name="EditDataScriptFilePathNull"><value>必须提供输出文件名</value></data>
|
||||
<data name="EditDataUnsupportedObjectType"><value>数据库对象 {0} 无法被编辑</value></data>
|
||||
<data name="ConnectionServiceDbErrorDefaultNotConnected"><value>指定的 URI '{0}' 没有默认的连接</value></data>
|
||||
<data name="EditDataCommitInProgress"><value>提交的任务正在进行,请等待它完成</value></data>
|
||||
<data name="SqlScriptFormatterDecimalMissingPrecision"><value>十进制列缺少数值精度或小数位数</value></data>
|
||||
<data name="EditDataComputedColumnPlaceholder"><value><TBD></value></data>
|
||||
<data name="QueryServiceResultSetAddNoRows"><value>无法在结果缓冲区添加行,数据读取器不包含任何行</value></data>
|
||||
<data name="EditDataTimeOver24Hrs"><value>TIME 列的取值范围必须在 00:00:00.0000000 至 23:59:59.9999999 之间</value></data>
|
||||
<data name="EditDataNullNotAllowed"><value>该列不允许Null 值</value></data>
|
||||
<data name="EditDataSessionAlreadyExists"><value>编辑会话已存在</value></data>
|
||||
<data name="EditDataSessionNotInitialized"><value>编辑会话尚未初始化</value></data>
|
||||
<data name="EditDataSessionAlreadyInitialized"><value>编辑会话已被初始化</value></data>
|
||||
<data name="EditDataSessionAlreadyInitializing"><value>编辑会话已被初始化或正在初始化中</value></data>
|
||||
<data name="EditDataQueryFailed"><value>执行查询失败,查看消息了解更多详情</value></data>
|
||||
<data name="EditDataFilteringNegativeLimit"><value>结果集的限制值不能为负数</value></data>
|
||||
<data name="QueryServiceCellNull"><value>空</value></data>
|
||||
<data name="EditDataMetadataObjectNameRequired"><value>必须提供对象名称</value></data>
|
||||
<data name="EditDataMetadataTooManyIdentifiers"><value>不支持显式指定服务器或者数据库</value></data>
|
||||
<data name="EditDataMetadataNotExtended"><value>数据表的元数据没有扩展属性</value></data>
|
||||
<data name="EditDataObjectNotFound"><value>找不到请求编辑的数据表或视图</value></data>
|
||||
<data name="TreeNodeError"><value>扩展数据库时出错: {0}</value></data>
|
||||
<data name="ServerNodeConnectionError"><value>连接到 {0} 时出错</value></data>
|
||||
<data name="SchemaHierarchy_Aggregates"><value>聚合</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoles"><value>服务器角色</value></data>
|
||||
<data name="SchemaHierarchy_ApplicationRoles"><value>应用程序角色</value></data>
|
||||
<data name="SchemaHierarchy_Assemblies"><value>程序集</value></data>
|
||||
<data name="SchemaHierarchy_AssemblyFiles"><value>程序集文件</value></data>
|
||||
<data name="SchemaHierarchy_AsymmetricKeys"><value>非对称密钥</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAsymmetricKeys"><value>非对称密钥</value></data>
|
||||
<data name="SchemaHierarchy_DataCompressionOptions"><value>数据压缩选项</value></data>
|
||||
<data name="SchemaHierarchy_Certificates"><value>证书</value></data>
|
||||
<data name="SchemaHierarchy_FileTables"><value>文件表</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseCertificates"><value>证书</value></data>
|
||||
<data name="SchemaHierarchy_CheckConstraints"><value>CHECK 约束</value></data>
|
||||
<data name="SchemaHierarchy_Columns"><value>列</value></data>
|
||||
<data name="SchemaHierarchy_Constraints"><value>约束</value></data>
|
||||
<data name="SchemaHierarchy_Contracts"><value>协定</value></data>
|
||||
<data name="SchemaHierarchy_Credentials"><value>凭据</value></data>
|
||||
<data name="SchemaHierarchy_ErrorMessages"><value>错误消息</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoleMembership"><value>服务器角色成员资格</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseOptions"><value>数据库选项</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseRoles"><value>数据库角色</value></data>
|
||||
<data name="SchemaHierarchy_RoleMemberships"><value>角色成员资格</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseTriggers"><value>数据库触发器</value></data>
|
||||
<data name="SchemaHierarchy_DefaultConstraints"><value>默认约束</value></data>
|
||||
<data name="SchemaHierarchy_Defaults"><value>默认值</value></data>
|
||||
<data name="SchemaHierarchy_Sequences"><value>序列</value></data>
|
||||
<data name="SchemaHierarchy_Endpoints"><value>终结点</value></data>
|
||||
<data name="SchemaHierarchy_EventNotifications"><value>事件通知</value></data>
|
||||
<data name="SchemaHierarchy_ServerEventNotifications"><value>服务器事件通知</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedProperties"><value>扩展属性</value></data>
|
||||
<data name="SchemaHierarchy_FileGroups"><value>文件组</value></data>
|
||||
<data name="SchemaHierarchy_ForeignKeys"><value>外键</value></data>
|
||||
<data name="SchemaHierarchy_FullTextCatalogs"><value>全文目录</value></data>
|
||||
<data name="SchemaHierarchy_FullTextIndexes"><value>全文检索</value></data>
|
||||
<data name="SchemaHierarchy_Functions"><value>函数</value></data>
|
||||
<data name="SchemaHierarchy_Indexes"><value>索引</value></data>
|
||||
<data name="SchemaHierarchy_InlineFunctions"><value>内联函数</value></data>
|
||||
<data name="SchemaHierarchy_Keys"><value>键</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServers"><value>链接的服务器</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServerLogins"><value>链接的服务器登录名</value></data>
|
||||
<data name="SchemaHierarchy_Logins"><value>登录名</value></data>
|
||||
<data name="SchemaHierarchy_MasterKey"><value>主密钥</value></data>
|
||||
<data name="SchemaHierarchy_MasterKeys"><value>主密钥</value></data>
|
||||
<data name="SchemaHierarchy_MessageTypes"><value>消息类型</value></data>
|
||||
<data name="SchemaHierarchy_MultiSelectFunctions"><value>表值函数</value></data>
|
||||
<data name="SchemaHierarchy_Parameters"><value>参数</value></data>
|
||||
<data name="SchemaHierarchy_PartitionFunctions"><value>分区函数</value></data>
|
||||
<data name="SchemaHierarchy_PartitionSchemes"><value>分区方案</value></data>
|
||||
<data name="SchemaHierarchy_Permissions"><value>权限</value></data>
|
||||
<data name="SchemaHierarchy_PrimaryKeys"><value>主键</value></data>
|
||||
<data name="SchemaHierarchy_Programmability"><value>可编程性</value></data>
|
||||
<data name="SchemaHierarchy_Queues"><value>队列</value></data>
|
||||
<data name="SchemaHierarchy_RemoteServiceBindings"><value>远程服务绑定</value></data>
|
||||
<data name="SchemaHierarchy_ReturnedColumns"><value>返回列</value></data>
|
||||
<data name="SchemaHierarchy_Roles"><value>角色</value></data>
|
||||
<data name="SchemaHierarchy_Routes"><value>路由</value></data>
|
||||
<data name="SchemaHierarchy_Rules"><value>规则</value></data>
|
||||
<data name="SchemaHierarchy_Schemas"><value>架构</value></data>
|
||||
<data name="SchemaHierarchy_Security"><value>安全性</value></data>
|
||||
<data name="SchemaHierarchy_ServerObjects"><value>服务器对象</value></data>
|
||||
<data name="SchemaHierarchy_Management"><value>管理</value></data>
|
||||
<data name="SchemaHierarchy_ServerTriggers"><value>触发器</value></data>
|
||||
<data name="SchemaHierarchy_ServiceBroker"><value>Service Broker</value></data>
|
||||
<data name="SchemaHierarchy_Services"><value>服务</value></data>
|
||||
<data name="SchemaHierarchy_Signatures"><value>签名</value></data>
|
||||
<data name="SchemaHierarchy_LogFiles"><value>日志文件</value></data>
|
||||
<data name="SchemaHierarchy_Statistics"><value>统计信息</value></data>
|
||||
<data name="SchemaHierarchy_Storage"><value>存储</value></data>
|
||||
<data name="SchemaHierarchy_StoredProcedures"><value>存储过程</value></data>
|
||||
<data name="SchemaHierarchy_SymmetricKeys"><value>对称密钥</value></data>
|
||||
<data name="SchemaHierarchy_Synonyms"><value>同义词</value></data>
|
||||
<data name="SchemaHierarchy_Tables"><value>表</value></data>
|
||||
<data name="SchemaHierarchy_Triggers"><value>触发器</value></data>
|
||||
<data name="SchemaHierarchy_Types"><value>类型</value></data>
|
||||
<data name="SchemaHierarchy_UniqueKeys"><value>唯一键</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedDataTypes"><value>用户定义的数据类型</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTypes"><value>用户定义的类型(CLR)</value></data>
|
||||
<data name="SchemaHierarchy_Users"><value>用户</value></data>
|
||||
<data name="SchemaHierarchy_Views"><value>视图</value></data>
|
||||
<data name="SchemaHierarchy_XmlIndexes"><value>XML 索引</value></data>
|
||||
<data name="SchemaHierarchy_XMLSchemaCollections"><value>XML 架构集合</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTableTypes"><value>用户定义的表类型</value></data>
|
||||
<data name="SchemaHierarchy_FilegroupFiles"><value>文件</value></data>
|
||||
<data name="MissingCaption"><value>缺少标题</value></data>
|
||||
<data name="SchemaHierarchy_BrokerPriorities"><value>Broker 优先级</value></data>
|
||||
<data name="SchemaHierarchy_CryptographicProviders"><value>加密提供程序</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAuditSpecifications"><value>数据库审核规范</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseEncryptionKeys"><value>数据库加密密钥</value></data>
|
||||
<data name="SchemaHierarchy_EventSessions"><value>事件会话</value></data>
|
||||
<data name="SchemaHierarchy_FullTextStopLists"><value>全文非索引字表</value></data>
|
||||
<data name="SchemaHierarchy_ResourcePools"><value>资源池</value></data>
|
||||
<data name="SchemaHierarchy_ServerAudits"><value>审核</value></data>
|
||||
<data name="SchemaHierarchy_ServerAuditSpecifications"><value>服务器审核规范</value></data>
|
||||
<data name="SchemaHierarchy_SpatialIndexes"><value>空间索引</value></data>
|
||||
<data name="SchemaHierarchy_WorkloadGroups"><value>工作负荷组</value></data>
|
||||
<data name="SchemaHierarchy_SqlFiles"><value>SQL 文件</value></data>
|
||||
<data name="SchemaHierarchy_ServerFunctions"><value>服务器函数</value></data>
|
||||
<data name="SchemaHierarchy_SqlType"><value>SQL 类型</value></data>
|
||||
<data name="SchemaHierarchy_ServerOptions"><value>服务器选项</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseDiagrams"><value>数据库关系图</value></data>
|
||||
<data name="SchemaHierarchy_SystemTables"><value>系统表</value></data>
|
||||
<data name="SchemaHierarchy_Databases"><value>数据库</value></data>
|
||||
<data name="SchemaHierarchy_SystemContracts"><value>系统约定</value></data>
|
||||
<data name="SchemaHierarchy_SystemDatabases"><value>系统数据库</value></data>
|
||||
<data name="SchemaHierarchy_SystemMessageTypes"><value>系统消息类型</value></data>
|
||||
<data name="SchemaHierarchy_SystemQueues"><value>系统队列</value></data>
|
||||
<data name="SchemaHierarchy_SystemServices"><value>系统服务</value></data>
|
||||
<data name="SchemaHierarchy_SystemStoredProcedures"><value>系统存储过程</value></data>
|
||||
<data name="SchemaHierarchy_SystemViews"><value>系统视图</value></data>
|
||||
<data name="SchemaHierarchy_DataTierApplications"><value>数据层应用程序</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedStoredProcedures"><value>扩展存储过程</value></data>
|
||||
<data name="SchemaHierarchy_SystemAggregateFunctions"><value>聚合函数</value></data>
|
||||
<data name="SchemaHierarchy_SystemApproximateNumerics"><value>近似数字</value></data>
|
||||
<data name="SchemaHierarchy_SystemBinaryStrings"><value>二进制字符串</value></data>
|
||||
<data name="SchemaHierarchy_SystemCharacterStrings"><value>字符串</value></data>
|
||||
<data name="SchemaHierarchy_SystemCLRDataTypes"><value>CLR 数据类型</value></data>
|
||||
<data name="SchemaHierarchy_SystemConfigurationFunctions"><value>配置函数</value></data>
|
||||
<data name="SchemaHierarchy_SystemCursorFunctions"><value>游标函数</value></data>
|
||||
<data name="SchemaHierarchy_SystemDataTypes"><value>系统数据类型</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTime"><value>日期和时间</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTimeFunctions"><value>日期和时间函数</value></data>
|
||||
<data name="SchemaHierarchy_SystemExactNumerics"><value>精确数字</value></data>
|
||||
<data name="SchemaHierarchy_SystemFunctions"><value>系统函数</value></data>
|
||||
<data name="SchemaHierarchy_SystemHierarchyIdFunctions"><value>层次结构 ID 函数</value></data>
|
||||
<data name="SchemaHierarchy_SystemMathematicalFunctions"><value>数学函数</value></data>
|
||||
<data name="SchemaHierarchy_SystemMetadataFunctions"><value>元数据函数</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherDataTypes"><value>其他数据类型</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherFunctions"><value>其他函数</value></data>
|
||||
<data name="SchemaHierarchy_SystemRowsetFunctions"><value>行集函数</value></data>
|
||||
<data name="SchemaHierarchy_SystemSecurityFunctions"><value>安全函数</value></data>
|
||||
<data name="SchemaHierarchy_SystemSpatialDataTypes"><value>空间数据类型</value></data>
|
||||
<data name="SchemaHierarchy_SystemStringFunctions"><value>字符串函数</value></data>
|
||||
<data name="SchemaHierarchy_SystemSystemStatisticalFunctions"><value>系统统计函数</value></data>
|
||||
<data name="SchemaHierarchy_SystemTextAndImageFunctions"><value>文本和图像函数</value></data>
|
||||
<data name="SchemaHierarchy_SystemUnicodeCharacterStrings"><value>Unicode 字符串</value></data>
|
||||
<data name="SchemaHierarchy_AggregateFunctions"><value>聚合函数</value></data>
|
||||
<data name="SchemaHierarchy_ScalarValuedFunctions"><value>标量值函数</value></data>
|
||||
<data name="SchemaHierarchy_TableValuedFunctions"><value>表值函数</value></data>
|
||||
<data name="SchemaHierarchy_SystemExtendedStoredProcedures"><value>系统扩展存储过程</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInType"><value>内置类型</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInServerRole"><value>内置服务器角色</value></data>
|
||||
<data name="SchemaHierarchy_UserWithPassword"><value>具有密码的用户</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyList"><value>搜索属性列表</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPolicies"><value>安全策略</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPredicates"><value>安全谓词</value></data>
|
||||
<data name="SchemaHierarchy_ServerRole"><value>服务器角色</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyLists"><value>搜索属性列表</value></data>
|
||||
<data name="SchemaHierarchy_ColumnStoreIndexes"><value>列存储索引</value></data>
|
||||
<data name="SchemaHierarchy_TableTypeIndexes"><value>表类型索引</value></data>
|
||||
<data name="SchemaHierarchy_SelectiveXmlIndexes"><value>选择性 XML 索引</value></data>
|
||||
<data name="SchemaHierarchy_XmlNamespaces"><value>XML 命名空间</value></data>
|
||||
<data name="SchemaHierarchy_XmlTypedPromotedPaths"><value>XML 特型提升路径</value></data>
|
||||
<data name="SchemaHierarchy_SqlTypedPromotedPaths"><value>T-SQL 特型提升路径</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseScopedCredentials"><value>数据库范围的凭据</value></data>
|
||||
<data name="SchemaHierarchy_ExternalDataSources"><value>外部数据源</value></data>
|
||||
<data name="SchemaHierarchy_ExternalFileFormats"><value>外部文件格式</value></data>
|
||||
<data name="SchemaHierarchy_ExternalResources"><value>外部资源</value></data>
|
||||
<data name="SchemaHierarchy_ExternalTables"><value>外部表</value></data>
|
||||
<data name="SchemaHierarchy_AlwaysEncryptedKeys"><value>Always Encrypted 密钥</value></data>
|
||||
<data name="SchemaHierarchy_ColumnMasterKeys"><value>列主密钥</value></data>
|
||||
<data name="SchemaHierarchy_ColumnEncryptionKeys"><value>列加密密钥</value></data>
|
||||
<data name="SchemaHierarchy_Server"><value>服务器</value></data>
|
||||
<data name="ScriptingParams_ConnectionString_Property_Invalid"><value>解析属性 ScriptingParams.ConnectionString 时出错</value></data>
|
||||
<data name="ScriptingParams_FilePath_Property_Invalid"><value>ScriptingParams.FilePath 属性指定的路径是无效目录</value></data>
|
||||
<data name="ScriptingListObjectsCompleteParams_ConnectionString_Property_Invalid"><value>解析属性 ScriptingListObjectsCompleteParams.ConnectionString 时出错</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterLabelFormatString"><value>{0} ({1}, {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterNoDefaultLabel"><value>无默认值</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputLabel"><value>输入</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputLabel"><value>输入/输出</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputReadOnlyLabel"><value>输入/只读</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputReadOnlyLabel"><value>输入/输出/只读</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterDefaultLabel"><value>默认值</value></data>
|
||||
<data name="SchemaHierarchy_NullColumn_Label"><value>Null</value></data>
|
||||
<data name="SchemaHierarchy_NotNullColumn_Label"><value>非 Null</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithType"><value>{0} ({1}, {2})</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithoutType"><value>{0} ({1})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithType"><value>{0} ({1}Computed, {2}, {3})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithoutType"><value>{0} ({1}Computed)</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithoutType"><value>{0} (列集,{1})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithType"><value>{0} (列集,{1}{2},{3})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithTypeAndKeyString"><value>{0} (列集,{1},{2},{3})</value></data>
|
||||
<data name="UniqueIndex_LabelPart"><value>唯一</value></data>
|
||||
<data name="NonUniqueIndex_LabelPart"><value>非唯一</value></data>
|
||||
<data name="ClusteredIndex_LabelPart"><value>聚集</value></data>
|
||||
<data name="NonClusteredIndex_LabelPart"><value>非聚集</value></data>
|
||||
<data name="History_LabelPart"><value>历史记录</value></data>
|
||||
<data name="SystemVersioned_LabelPart"><value>带有系统版本</value></data>
|
||||
<data name="unavailable"><value>不可用</value></data>
|
||||
<data name="filegroup_dialog_defaultFilegroup"><value>当前默认文件组: {0}</value></data>
|
||||
<data name="filegroup_dialog_title"><value>{0} 的新文件组</value></data>
|
||||
<data name="filegroups_default"><value>默认值</value></data>
|
||||
<data name="filegroups_files"><value>文件</value></data>
|
||||
<data name="filegroups_name"><value>名称</value></data>
|
||||
<data name="filegroups_readonly"><value>只读</value></data>
|
||||
<data name="general_autogrowth"><value>自动增长/最大大小</value></data>
|
||||
<data name="general_builderText"><value>...</value></data>
|
||||
<data name="general_default"><value><默认值></value></data>
|
||||
<data name="general_fileGroup"><value>文件组</value></data>
|
||||
<data name="general_fileName"><value>逻辑名</value></data>
|
||||
<data name="general_fileType"><value>文件类型</value></data>
|
||||
<data name="general_initialSize"><value>初始大小 (MB)</value></data>
|
||||
<data name="general_newFilegroup"><value><新文件组></value></data>
|
||||
<data name="general_path"><value>路径</value></data>
|
||||
<data name="general_physicalFileName"><value>文件名</value></data>
|
||||
<data name="general_rawDevice"><value><原始设备></value></data>
|
||||
<data name="general_recoveryModel_bulkLogged"><value>批量记录的</value></data>
|
||||
<data name="general_recoveryModel_full"><value>满</value></data>
|
||||
<data name="general_recoveryModel_simple"><value>简单</value></data>
|
||||
<data name="general_titleSearchOwner"><value>选择数据库所有者</value></data>
|
||||
<data name="prototype_autogrowth_disabled"><value>无</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByMB"><value>增量为 {0} MB,限制为 {1} MB</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByPercent"><value>增量为 {0}%,限制为 {1} MB</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByMB"><value>增量为 {0} MB,增长无限制</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByPercent"><value>增量为 {0}%,增长无限制</value></data>
|
||||
<data name="prototype_autogrowth_unlimitedfilestream"><value>无限制</value></data>
|
||||
<data name="prototype_autogrowth_limitedfilestream"><value>不超过{0} MB</value></data>
|
||||
<data name="prototype_db_category_automatic"><value>自动</value></data>
|
||||
<data name="prototype_db_category_servicebroker"><value>Service Broker</value></data>
|
||||
<data name="prototype_db_category_collation"><value>排序规则</value></data>
|
||||
<data name="prototype_db_category_cursor"><value>游标</value></data>
|
||||
<data name="prototype_db_category_misc"><value>杂项</value></data>
|
||||
<data name="prototype_db_category_recovery"><value>恢复</value></data>
|
||||
<data name="prototype_db_category_state"><value>状态</value></data>
|
||||
<data name="prototype_db_prop_ansiNullDefault"><value>ANSI NULL 默认值</value></data>
|
||||
<data name="prototype_db_prop_ansiNulls"><value>启用 ANSI NULLS</value></data>
|
||||
<data name="prototype_db_prop_ansiPadding"><value>ANSI 填充已启用 </value></data>
|
||||
<data name="prototype_db_prop_ansiWarnings"><value>启用 ANSI 警告</value></data>
|
||||
<data name="prototype_db_prop_arithabort"><value>算术中止已启用</value></data>
|
||||
<data name="prototype_db_prop_autoClose"><value>自动关闭</value></data>
|
||||
<data name="prototype_db_prop_autoCreateStatistics"><value>自动创建统计信息</value></data>
|
||||
<data name="prototype_db_prop_autoShrink"><value>自动收缩</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatistics"><value>自动更新统计信息</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatisticsAsync"><value>自动异步更新统计信息</value></data>
|
||||
<data name="prototype_db_prop_caseSensitive"><value>区分大小写的</value></data>
|
||||
<data name="prototype_db_prop_closeCursorOnCommit"><value>已启用“提交时关闭游标”</value></data>
|
||||
<data name="prototype_db_prop_collation"><value>排序规则</value></data>
|
||||
<data name="prototype_db_prop_concatNullYieldsNull"><value>串联 Null 时得到 Null</value></data>
|
||||
<data name="prototype_db_prop_databaseCompatibilityLevel"><value>数据库兼容级别</value></data>
|
||||
<data name="prototype_db_prop_databaseState"><value>数据库状态</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor"><value>默认游标</value></data>
|
||||
<data name="prototype_db_prop_fullTextIndexing"><value>已启用全文索引</value></data>
|
||||
<data name="prototype_db_prop_numericRoundAbort"><value>数值舍入 —— 中止</value></data>
|
||||
<data name="prototype_db_prop_pageVerify"><value>页验证</value></data>
|
||||
<data name="prototype_db_prop_quotedIdentifier"><value>已启用 Quoted Identifiers</value></data>
|
||||
<data name="prototype_db_prop_readOnly"><value>数据库为只读的</value></data>
|
||||
<data name="prototype_db_prop_recursiveTriggers"><value>已启用 Recursive Triggers</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess"><value>限制访问</value></data>
|
||||
<data name="prototype_db_prop_selectIntoBulkCopy"><value>Select Into/Bulk Copy</value></data>
|
||||
<data name="prototype_db_prop_honorBrokerPriority"><value>优先处理 Broker 优先级</value></data>
|
||||
<data name="prototype_db_prop_serviceBrokerGuid"><value>Service Broker Identifier</value></data>
|
||||
<data name="prototype_db_prop_brokerEnabled"><value>已启用 Broker</value></data>
|
||||
<data name="prototype_db_prop_truncateLogOnCheckpoint"><value>在检查点删除日志</value></data>
|
||||
<data name="prototype_db_prop_dbChaining"><value>启用跨数据库所有权链接</value></data>
|
||||
<data name="prototype_db_prop_trustworthy"><value>可信</value></data>
|
||||
<data name="prototype_db_prop_dateCorrelationOptimization"><value>Date Correlation Optimization 已启用 prototype_db_prop_parameterization = Parameterization</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_forced"><value>强迫的</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_simple"><value>简单</value></data>
|
||||
<data name="prototype_file_dataFile"><value>行数据</value></data>
|
||||
<data name="prototype_file_logFile"><value>日志</value></data>
|
||||
<data name="prototype_file_filestreamFile"><value>FILESTREAM 数据</value></data>
|
||||
<data name="prototype_file_noFileGroup"><value>不适用</value></data>
|
||||
<data name="prototype_file_defaultpathstring"><value><默认路径></value></data>
|
||||
<data name="title_openConnectionsMustBeClosed"><value>开着的连接</value></data>
|
||||
<data name="warning_openConnectionsMustBeClosed"><value>SQL Server 需要关闭所有其它连接来改变数据库属性——你确认要改变属性并关闭所有其它连接吗?</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_autoClosed"><value>AUTO_CLOSED</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_emergency"><value>紧急</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_inaccessible"><value>不可访问</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_normal"><value>一般</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_offline"><value>离线</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recovering"><value>恢复中</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recoveryPending"><value>等待恢复</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_restoring"><value>恢复中</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_shutdown"><value>关机</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_standby"><value>待机</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_suspect"><value>怀疑</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_global"><value>全局</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_local"><value>ju</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_multiple"><value>MULTI_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_restricted"><value>RESTRICTED_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_single"><value>SINGLE_USER</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_checksum"><value>校验码</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_none"><value>没有</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_tornPageDetection"><value>TORN_PAGE_DETECTION</value></data>
|
||||
<data name="prototype_db_prop_varDecimalEnabled"><value>启用 VarDecimal 存储格式</value></data>
|
||||
<data name="compatibilityLevel_katmai"><value>SQL Server 2008 (100)</value></data>
|
||||
<data name="prototype_db_prop_encryptionEnabled"><value>启用加密</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_off"><value>关</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_on"><value>开</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_primary"><value>首要的</value></data>
|
||||
<data name="error_db_prop_invalidleadingColumns"><value>对于分配政策HASH,开始的哈希列的数量是可选的,但是应在1到16之间</value></data>
|
||||
<data name="compatibilityLevel_denali"><value>SQL Server 2012 (110)</value></data>
|
||||
<data name="compatibilityLevel_sql14"><value>SQL Server 2014 (120)</value></data>
|
||||
<data name="compatibilityLevel_sql15"><value>SQL Server 2016 (130)</value></data>
|
||||
<data name="compatibilityLevel_sqlvNext"><value>SQL Server vNext (140)</value></data>
|
||||
<data name="general_containmentType_None"><value>无</value></data>
|
||||
<data name="general_containmentType_Partial"><value>部分</value></data>
|
||||
<data name="filegroups_filestreamFiles"><value>FILESTREAM 文件</value></data>
|
||||
<data name="prototype_file_noApplicableFileGroup"><value>没有可用的文件组</value></data>
|
||||
<data name="DatabaseNotAccessible"><value>数据库 {0} 无法访问。</value></data>
|
||||
<data name="QueryServiceResultSetHasNoResults"><value>无查询结果</value></data>
|
||||
<data name="QueryServiceResultSetTooLarge"><value>资料行因结果集太长而可能无法加载</value></data>
|
||||
<data name="prototype_db_prop_parameterization"><value>参数化</value></data>
|
||||
<data name="ConflictWithNoRecovery"><value>当使用 NORECOVERY 选项还原备份时,不允许指定此选项。</value></data>
|
||||
<data name="InvalidPathForDatabaseFile"><value>数据库文件的路径无效:“{0}”</value></data>
|
||||
<data name="Log"><value>日志</value></data>
|
||||
<data name="RestorePlanFailed"><value>制订还原计划失败</value></data>
|
||||
<data name="RestoreNotSupported"><value>不支持还原数据库</value></data>
|
||||
<data name="RestoreTaskName"><value>还原数据库</value></data>
|
||||
<data name="RestoreCopyOnly"><value>(仅复制)</value></data>
|
||||
<data name="RestoreBackupSetComponent"><value>组件</value></data>
|
||||
<data name="RestoreBackupSetType"><value>类型</value></data>
|
||||
<data name="RestoreBackupSetServer"><value>服务器</value></data>
|
||||
<data name="RestoreBackupSetDatabase"><value>数据库</value></data>
|
||||
<data name="RestoreBackupSetPosition"><value>位置</value></data>
|
||||
<data name="RestoreBackupSetFirstLsn"><value>第一个 LSN</value></data>
|
||||
<data name="RestoreBackupSetLastLsn"><value>最后一个 LSN</value></data>
|
||||
<data name="RestoreBackupSetCheckpointLsn"><value>检查点 LSN</value></data>
|
||||
<data name="RestoreBackupSetFullLsn"><value>完整 LSN</value></data>
|
||||
<data name="RestoreBackupSetStartDate"><value>开始日期</value></data>
|
||||
<data name="RestoreBackupSetFinishDate"><value>完成日期</value></data>
|
||||
<data name="RestoreBackupSetSize"><value>大小</value></data>
|
||||
<data name="RestoreBackupSetUserName"><value>用户名</value></data>
|
||||
<data name="RestoreBackupSetExpiration"><value>过期</value></data>
|
||||
<data name="RestoreBackupSetName"><value>名称</value></data>
|
||||
<data name="TheLastBackupTaken"><value>上次执行的备份({0})</value></data>
|
||||
<data name="BackupTaskName"><value>备份数据库</value></data>
|
||||
<data name="TaskInProgress"><value>正在进行</value></data>
|
||||
<data name="TaskCompleted"><value>已完成</value></data>
|
||||
<data name="ScriptTaskName"><value>开始执行脚本操作</value></data>
|
||||
<data name="ProfilerConnectionNotFound"><value>找不到连接</value></data>
|
||||
<data name="BackupPathIsFolderError"><value>所指定的文件名同时也是一个文件目录名: {0}</value></data>
|
||||
<data name="InvalidBackupPathError"><value>无法验证备份文件的位置是否存在: {0}</value></data>
|
||||
<data name="InvalidPathError"><value>无法访问服务器上的指定路径: {0}</value></data>
|
||||
<data name="NoBackupsetsToRestore"><value>未选择用于还原的备份集</value></data>
|
||||
<data name="NeverBackedUp"><value>从不</value></data>
|
||||
<data name="AzureSqlDbEdition"><value>Azure SQL 数据库</value></data>
|
||||
<data name="AzureSqlDwEdition"><value>Azure SQL 数据仓库</value></data>
|
||||
<data name="AzureSqlStretchEdition"><value>Azure SQL Stretch Database</value></data>
|
||||
<data name="Error_InvalidDirectoryName"><value>路径 {0} 不是有效的目录</value></data>
|
||||
<data name="Error_ExistingDirectoryName"><value>{0} 文件夹中已存在名为 {1} 的文件</value></data>
|
||||
<data name="EditDataValueTooLarge"><value>值 {0} 太大,无法放入类型为 {1} 的列</value></data>
|
||||
</root>
|
||||
491
src/Microsoft.SqlTools.CoreServices/Localization/sr.zh-hant.resx
Normal file
491
src/Microsoft.SqlTools.CoreServices/Localization/sr.zh-hant.resx
Normal file
@@ -0,0 +1,491 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype"><value>text/microsoft-resx</value></resheader><resheader name="version"><value>1.3</value></resheader><resheader name="reader"><value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><resheader name="writer"><value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><data name="ConnectionServiceConnectErrorNullParams"><value>連接參數不可為 null</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNullOwnerUri"><value>OwnerUri 不能為 null 或空白</value></data>
|
||||
<data name="ConnectionServiceListDbErrorNotConnected"><value>SpecifiedUri '{0}' 沒有現有的連線</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidAuthType"><value>AuthenticationType 值 "{0}" 無效。 有效值為 'Integrated' 和 'SqlLogin'。</value></data>
|
||||
<data name="ConnectionServiceConnStringInvalidIntent"><value>'{0}' 為無效的ApplicationIntent值。 有效值為 'ReadWrite' 和 'ReadOnly'。</value></data>
|
||||
<data name="ConnectionServiceConnectionCanceled"><value>已取消連線</value></data>
|
||||
<data name="ConnectionParamsValidateNullOwnerUri"><value>OwnerUri 不能是 null 或空白</value></data>
|
||||
<data name="ConnectionParamsValidateNullConnection"><value>連線詳細資料物件不能是 null</value></data>
|
||||
<data name="ConnectionParamsValidateNullServerName"><value>ServerName 不能是 null 或空白</value></data>
|
||||
<data name="ConnectionParamsValidateNullSqlAuth"><value>使用 SqlLogin 驗證時,{0} 不可為 null 或是空白</value></data>
|
||||
<data name="QueryServiceCancelAlreadyCompleted"><value>查詢已完成,無法取消</value></data>
|
||||
<data name="QueryServiceCancelDisposeFailed"><value>成功地取消查詢,無法處置查詢。找不到擁有者 URI 。</value></data>
|
||||
<data name="QueryServiceQueryCancelled"><value>使用者已取消查詢</value></data>
|
||||
<data name="QueryServiceSubsetBatchNotCompleted"><value>批次尚未完成</value></data>
|
||||
<data name="QueryServiceSubsetBatchOutOfRange"><value>批次索引不能小於 0 或大於批次的總數</value></data>
|
||||
<data name="QueryServiceSubsetResultSetOutOfRange"><value>結果集的索引不能小於 0 或大於結果集的總數</value></data>
|
||||
<data name="QueryServiceDataReaderByteCountInvalid"><value>傳回的最大位元組數目必須大於零</value></data>
|
||||
<data name="QueryServiceDataReaderCharCountInvalid"><value>傳回的最大字元數目必須大於零</value></data>
|
||||
<data name="QueryServiceDataReaderXmlCountInvalid"><value>傳回的最大 XML 位元組數目必須大於零</value></data>
|
||||
<data name="QueryServiceFileWrapperWriteOnly"><value>存取方法不可以設為唯寫</value></data>
|
||||
<data name="QueryServiceFileWrapperNotInitialized"><value>執行前,必須先初始化 FileStreamWrapper</value></data>
|
||||
<data name="QueryServiceFileWrapperReadOnly"><value>這個 FileStreamWrapper 不能用於寫入</value></data>
|
||||
<data name="QueryServiceAffectedOneRow"><value>(1 列受影響)</value></data>
|
||||
<data name="QueryServiceAffectedRows"><value>({0} 個資料列受到影響)</value></data>
|
||||
<data name="QueryServiceCompletedSuccessfully"><value>命令已順利完成。</value></data>
|
||||
<data name="QueryServiceErrorFormat"><value>訊息 {0},層級 {1} ,狀態 {2},第 {3} {4} {5} 行</value></data>
|
||||
<data name="QueryServiceQueryFailed"><value>查詢失敗︰ {0}</value></data>
|
||||
<data name="QueryServiceColumnNull"><value>(沒有資料行名稱)</value></data>
|
||||
<data name="QueryServiceRequestsNoQuery"><value>所要求的查詢不存在</value></data>
|
||||
<data name="QueryServiceQueryInvalidOwnerUri"><value>這個編輯器尚未連接到資料庫</value></data>
|
||||
<data name="QueryServiceQueryInProgress"><value>一個查詢已在這個編輯器工作階段。請取消這項查詢,或等待其完成。</value></data>
|
||||
<data name="QueryServiceMessageSenderNotSql"><value>OnInfoMessage 事件的寄件者必須是一個 SqlConnection。</value></data>
|
||||
<data name="QueryServiceSaveAsResultSetNotComplete"><value>完成查詢執行前無法儲存結果</value></data>
|
||||
<data name="QueryServiceSaveAsMiscStartingError"><value>在儲存工作啟動時,發生內部錯誤</value></data>
|
||||
<data name="QueryServiceSaveAsInProgress"><value>相同路徑的儲存要求正在進行中</value></data>
|
||||
<data name="QueryServiceSaveAsFail"><value>無法儲存 {0}: {1}</value></data>
|
||||
<data name="QueryServiceResultSetNotRead"><value>從伺服器讀取結果前,無法讀取子集</value></data>
|
||||
<data name="QueryServiceResultSetStartRowOutOfRange"><value>開始資料列不能小於 0 或大於結果集中的資料列總數</value></data>
|
||||
<data name="QueryServiceResultSetRowCountOutOfRange"><value>資料列計數必須是正整數</value></data>
|
||||
<data name="QueryServiceResultSetNoColumnSchema"><value>無法從結果集擷取資料行結構描述</value></data>
|
||||
<data name="QueryServiceExecutionPlanNotFound"><value>無法從結果集擷取執行計劃</value></data>
|
||||
<data name="PeekDefinitionAzureError"><value>這項功能目前不支援 Azure SQL 資料庫和資料倉儲︰ {0}</value></data>
|
||||
<data name="PeekDefinitionError"><value>查看定義執行過程中發生未預期的錯誤︰ {0}</value></data>
|
||||
<data name="PeekDefinitionNoResultsError"><value>找不到任何結果。</value></data>
|
||||
<data name="PeekDefinitionDatabaseError"><value>沒有資料庫物件被擷取。</value></data>
|
||||
<data name="PeekDefinitionNotConnectedError"><value>請連線到伺服器。</value></data>
|
||||
<data name="PeekDefinitionTimedoutError"><value>作業逾時。</value></data>
|
||||
<data name="PeekDefinitionTypeNotSupportedError"><value>此功能目前不支援這種物件類型。</value></data>
|
||||
<data name="WorkspaceServicePositionLineOutOfRange"><value>位置超出檔案行範圍</value></data>
|
||||
<data name="WorkspaceServicePositionColumnOutOfRange"><value>第 {0} 行位置超出資料行範圍</value></data>
|
||||
<data name="WorkspaceServiceBufferPositionOutOfOrder"><value>開始位置 ({0},{1}) 必須先於或等於結束位置 ({2},{3})</value></data>
|
||||
<data name="EE_BatchSqlMessageNoProcedureInfo"><value>訊息 {0},層級 {1} ,狀態 {2},第 {3} 行</value></data>
|
||||
<data name="EE_BatchSqlMessageWithProcedureInfo"><value>訊息 {0} ,層級 {1}, 狀態 {2}, 程序 {3},第 {4} 行</value></data>
|
||||
<data name="EE_BatchSqlMessageNoLineInfo"><value>訊息 {0},層級 {1} ,狀態 {2}</value></data>
|
||||
<data name="EE_BatchError_Exception"><value>處理批次時,發生錯誤。錯誤訊息是︰ {0}</value></data>
|
||||
<data name="EE_BatchExecutionInfo_RowsAffected"><value>({0} 個資料列受到影響)</value></data>
|
||||
<data name="EE_ExecutionNotYetCompleteError"><value>前一個執行尚未完成。</value></data>
|
||||
<data name="EE_ScriptError_Error"><value>發生指令碼的錯誤。</value></data>
|
||||
<data name="EE_ScriptError_ParsingSyntax"><value>正在剖析 {0} 時遇到不正確的語法。</value></data>
|
||||
<data name="EE_ScriptError_FatalError"><value>發生嚴重的錯誤。</value></data>
|
||||
<data name="EE_ExecutionInfo_FinalizingLoop"><value>已執行完成 {0} 次...</value></data>
|
||||
<data name="EE_ExecutionInfo_QueryCancelledbyUser"><value>您已取消查詢。</value></data>
|
||||
<data name="EE_BatchExecutionError_Halting"><value>執行此批次時發生錯誤。</value></data>
|
||||
<data name="EE_BatchExecutionError_Ignoring"><value>執行此批次時發生錯誤,但錯誤以忽略。</value></data>
|
||||
<data name="EE_ExecutionInfo_InitializingLoop"><value>Beginning execution loop</value></data>
|
||||
<data name="EE_ExecutionError_CommandNotSupported"><value>不支援命令 {0}。</value></data>
|
||||
<data name="EE_ExecutionError_VariableNotFound"><value>找不到變數 {0}。</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineError"><value>SQL 執行錯誤︰ {0}</value></data>
|
||||
<data name="BatchParserWrapperExecutionError"><value>批次剖析器包裝函式執行︰位於第 {1} 行: {2} 描述︰{3} 找到 {0}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchMessage"><value>批次剖析器包裝函式執行引擎批次所收到的訊息︰ 訊息︰ {0},詳細的訊息︰ {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetProcessing"><value>批次剖析器包裝函式執行引擎批次結果集處理︰ DataReader.FieldCount: {0} DataReader.RecordsAffected: {1}</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchResultSetFinished"><value>批次剖析器包裝函式執行引擎批次結果集已完成。</value></data>
|
||||
<data name="BatchParserWrapperExecutionEngineBatchCancelling"><value>正在取消批次剖析器包裝函式的批次執行。</value></data>
|
||||
<data name="EE_ScriptError_Warning"><value>指令碼警告。</value></data>
|
||||
<data name="TroubleshootingAssistanceMessage"><value>有關此錯誤的詳細資訊,請參閱產品文件中的疑難排解主題。</value></data>
|
||||
<data name="BatchParser_CircularReference"><value>檔案 '{0}' 具有遞迴。</value></data>
|
||||
<data name="BatchParser_CommentNotTerminated"><value>遺漏結束的註解記號 ' * /'。</value></data>
|
||||
<data name="BatchParser_StringNotTerminated"><value>字元字串後有未封閉的雙引號</value></data>
|
||||
<data name="BatchParser_IncorrectSyntax"><value>正在剖析 {0} 時遇到不正確的語法。</value></data>
|
||||
<data name="BatchParser_VariableNotDefined"><value>未定義變數 {0}。</value></data>
|
||||
<data name="TestLocalizationConstant"><value>測試</value></data>
|
||||
<data name="ErrorEmptyStringReplacement"><value>用空白字串取代空白字串。</value></data>
|
||||
<data name="EditDataSessionNotFound"><value>編輯工作階段不存在</value></data>
|
||||
<data name="EditDataQueryNotCompleted"><value>查詢尚未完成</value></data>
|
||||
<data name="EditDataQueryImproperResultSets"><value>查詢並非產生單一結果集</value></data>
|
||||
<data name="EditDataFailedAddRow"><value>在 cashe 裡更新資料列失敗</value></data>
|
||||
<data name="EditDataRowOutOfRange"><value>提供的資料列識別碼已超出 edit cashe 中資料列的範圍</value></data>
|
||||
<data name="EditDataUpdatePending"><value>這個資料列已經有一個更新正在等待使用,因此它必須先恢復原狀。</value></data>
|
||||
<data name="EditDataUpdateNotPending"><value>這個資料列識別碼並沒有正在等待更新</value></data>
|
||||
<data name="EditDataObjectMetadataNotFound"><value>找不到資料表或檢視表中繼資料</value></data>
|
||||
<data name="EditDataInvalidFormatBinary"><value>二進位資料欄格示錯誤</value></data>
|
||||
<data name="EditDataInvalidFormatBoolean"><value>Boolean 欄位必須填入數字 1 或 0, 或字串 true 或 false</value></data>
|
||||
<data name="EditDataCreateScriptMissingValue"><value>必填儲存格未填</value></data>
|
||||
<data name="EditDataDeleteSetCell"><value>這個資料列即將被刪除,其中的儲存格無法被更新</value></data>
|
||||
<data name="EditDataColumnIdOutOfRange"><value>資料行識別碼必須在資料行總數內才可被查詢</value></data>
|
||||
<data name="EditDataColumnCannotBeEdited"><value>資料行無法被編輯</value></data>
|
||||
<data name="EditDataColumnNoKeyColumns"><value>找不到索引鍵資料行</value></data>
|
||||
<data name="EditDataScriptFilePathNull"><value>必須提供輸出檔名</value></data>
|
||||
<data name="EditDataUnsupportedObjectType"><value>資料庫物件 {0} 無法被編輯</value></data>
|
||||
<data name="ConnectionServiceDbErrorDefaultNotConnected"><value>指定的 URI '{0}' 沒有預設的連線</value></data>
|
||||
<data name="EditDataCommitInProgress"><value>認可的工作正在進行,請等待它完成</value></data>
|
||||
<data name="SqlScriptFormatterDecimalMissingPrecision"><value>十進位資料行缺少數值有效位數或小數位數</value></data>
|
||||
<data name="EditDataComputedColumnPlaceholder"><value><TBD></value></data>
|
||||
<data name="QueryServiceResultSetAddNoRows"><value>無法在結果緩衝區加資料列,資料讀取器不包含資料列</value></data>
|
||||
<data name="EditDataTimeOver24Hrs"><value>TIME 欄的值範圍必須在 00:00:00.0000000 至 23:59:59.9999999 之間</value></data>
|
||||
<data name="EditDataNullNotAllowed"><value>這欄不允許填入 NULL 值</value></data>
|
||||
<data name="EditDataSessionAlreadyExists"><value>編輯工作階段已存在</value></data>
|
||||
<data name="EditDataSessionNotInitialized"><value>編輯工作階段尚未初始化</value></data>
|
||||
<data name="EditDataSessionAlreadyInitialized"><value>編輯工作階段已初始化</value></data>
|
||||
<data name="EditDataSessionAlreadyInitializing"><value>編輯工作階段已完成初始化或正在初始化</value></data>
|
||||
<data name="EditDataQueryFailed"><value>查詢執行失敗, 請查看詳細資訊</value></data>
|
||||
<data name="EditDataFilteringNegativeLimit"><value>結果限制不能為負</value></data>
|
||||
<data name="QueryServiceCellNull"><value>NULL</value></data>
|
||||
<data name="EditDataMetadataObjectNameRequired"><value>必須提供物件名稱</value></data>
|
||||
<data name="EditDataMetadataTooManyIdentifiers"><value>不支援明確指定的伺服器或資料庫</value></data>
|
||||
<data name="EditDataMetadataNotExtended"><value>資料表中繼資料無擴充屬性</value></data>
|
||||
<data name="EditDataObjectNotFound"><value>找不到要編輯的資料表或檢視表</value></data>
|
||||
<data name="TreeNodeError"><value>擴充資料庫時發生錯誤:{0}</value></data>
|
||||
<data name="ServerNodeConnectionError"><value>連接到 {0} 時發生錯誤</value></data>
|
||||
<data name="SchemaHierarchy_Aggregates"><value>彙總</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoles"><value>伺服器角色</value></data>
|
||||
<data name="SchemaHierarchy_ApplicationRoles"><value>應用程式角色</value></data>
|
||||
<data name="SchemaHierarchy_Assemblies"><value>組件</value></data>
|
||||
<data name="SchemaHierarchy_AssemblyFiles"><value>組件檔</value></data>
|
||||
<data name="SchemaHierarchy_AsymmetricKeys"><value>非對稱金鑰</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAsymmetricKeys"><value>非對稱金鑰</value></data>
|
||||
<data name="SchemaHierarchy_DataCompressionOptions"><value>資料壓縮選項</value></data>
|
||||
<data name="SchemaHierarchy_Certificates"><value>憑證</value></data>
|
||||
<data name="SchemaHierarchy_FileTables"><value>FileTable</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseCertificates"><value>憑證</value></data>
|
||||
<data name="SchemaHierarchy_CheckConstraints"><value>檢查條件約束</value></data>
|
||||
<data name="SchemaHierarchy_Columns"><value>資料行</value></data>
|
||||
<data name="SchemaHierarchy_Constraints"><value>條件約束</value></data>
|
||||
<data name="SchemaHierarchy_Contracts"><value>合約</value></data>
|
||||
<data name="SchemaHierarchy_Credentials"><value>認證</value></data>
|
||||
<data name="SchemaHierarchy_ErrorMessages"><value>錯誤訊息</value></data>
|
||||
<data name="SchemaHierarchy_ServerRoleMembership"><value>伺服器角色成員資格</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseOptions"><value>資料庫選項</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseRoles"><value>資料庫角色</value></data>
|
||||
<data name="SchemaHierarchy_RoleMemberships"><value>角色成員資格</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseTriggers"><value>資料庫觸發程序</value></data>
|
||||
<data name="SchemaHierarchy_DefaultConstraints"><value>預設條件約束</value></data>
|
||||
<data name="SchemaHierarchy_Defaults"><value>預設</value></data>
|
||||
<data name="SchemaHierarchy_Sequences"><value>序列</value></data>
|
||||
<data name="SchemaHierarchy_Endpoints"><value>端點</value></data>
|
||||
<data name="SchemaHierarchy_EventNotifications"><value>事件告知</value></data>
|
||||
<data name="SchemaHierarchy_ServerEventNotifications"><value>伺服器事件通知</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedProperties"><value>擴充屬性</value></data>
|
||||
<data name="SchemaHierarchy_FileGroups"><value>檔案群組</value></data>
|
||||
<data name="SchemaHierarchy_ForeignKeys"><value>外部索引鍵</value></data>
|
||||
<data name="SchemaHierarchy_FullTextCatalogs"><value>全文檢索目錄</value></data>
|
||||
<data name="SchemaHierarchy_FullTextIndexes"><value>全文檢索索引</value></data>
|
||||
<data name="SchemaHierarchy_Functions"><value>函式</value></data>
|
||||
<data name="SchemaHierarchy_Indexes"><value>索引</value></data>
|
||||
<data name="SchemaHierarchy_InlineFunctions"><value>內嵌函式</value></data>
|
||||
<data name="SchemaHierarchy_Keys"><value>索引鍵</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServers"><value>連結的伺服器</value></data>
|
||||
<data name="SchemaHierarchy_LinkedServerLogins"><value>連結的伺服器登入</value></data>
|
||||
<data name="SchemaHierarchy_Logins"><value>登入</value></data>
|
||||
<data name="SchemaHierarchy_MasterKey"><value>主要金鑰</value></data>
|
||||
<data name="SchemaHierarchy_MasterKeys"><value>主要金鑰</value></data>
|
||||
<data name="SchemaHierarchy_MessageTypes"><value>訊息類型</value></data>
|
||||
<data name="SchemaHierarchy_MultiSelectFunctions"><value>資料表值函式</value></data>
|
||||
<data name="SchemaHierarchy_Parameters"><value>參數</value></data>
|
||||
<data name="SchemaHierarchy_PartitionFunctions"><value>資料分割函式</value></data>
|
||||
<data name="SchemaHierarchy_PartitionSchemes"><value>資料分割配置</value></data>
|
||||
<data name="SchemaHierarchy_Permissions"><value>權限</value></data>
|
||||
<data name="SchemaHierarchy_PrimaryKeys"><value>主索引鍵</value></data>
|
||||
<data name="SchemaHierarchy_Programmability"><value>可程式性</value></data>
|
||||
<data name="SchemaHierarchy_Queues"><value>佇列</value></data>
|
||||
<data name="SchemaHierarchy_RemoteServiceBindings"><value>遠端服務繫結</value></data>
|
||||
<data name="SchemaHierarchy_ReturnedColumns"><value>傳回的資料行</value></data>
|
||||
<data name="SchemaHierarchy_Roles"><value>角色</value></data>
|
||||
<data name="SchemaHierarchy_Routes"><value>路由</value></data>
|
||||
<data name="SchemaHierarchy_Rules"><value>規則</value></data>
|
||||
<data name="SchemaHierarchy_Schemas"><value>結構描述</value></data>
|
||||
<data name="SchemaHierarchy_Security"><value>安全性</value></data>
|
||||
<data name="SchemaHierarchy_ServerObjects"><value>伺服器物件</value></data>
|
||||
<data name="SchemaHierarchy_Management"><value>管理</value></data>
|
||||
<data name="SchemaHierarchy_ServerTriggers"><value>觸發程序</value></data>
|
||||
<data name="SchemaHierarchy_ServiceBroker"><value>Service Broker</value></data>
|
||||
<data name="SchemaHierarchy_Services"><value>服務</value></data>
|
||||
<data name="SchemaHierarchy_Signatures"><value>簽章</value></data>
|
||||
<data name="SchemaHierarchy_LogFiles"><value>記錄檔</value></data>
|
||||
<data name="SchemaHierarchy_Statistics"><value>統計資料</value></data>
|
||||
<data name="SchemaHierarchy_Storage"><value>儲存體</value></data>
|
||||
<data name="SchemaHierarchy_StoredProcedures"><value>預存程序</value></data>
|
||||
<data name="SchemaHierarchy_SymmetricKeys"><value>對稱金鑰</value></data>
|
||||
<data name="SchemaHierarchy_Synonyms"><value>同義資料表</value></data>
|
||||
<data name="SchemaHierarchy_Tables"><value>資料表</value></data>
|
||||
<data name="SchemaHierarchy_Triggers"><value>觸發程序</value></data>
|
||||
<data name="SchemaHierarchy_Types"><value>型別</value></data>
|
||||
<data name="SchemaHierarchy_UniqueKeys"><value>唯一索引鍵</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedDataTypes"><value>使用者定義資料類型</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTypes"><value>使用者定義型別 (CLR)</value></data>
|
||||
<data name="SchemaHierarchy_Users"><value>使用者</value></data>
|
||||
<data name="SchemaHierarchy_Views"><value>檢視</value></data>
|
||||
<data name="SchemaHierarchy_XmlIndexes"><value>XML 索引</value></data>
|
||||
<data name="SchemaHierarchy_XMLSchemaCollections"><value>XML 結構描述集合</value></data>
|
||||
<data name="SchemaHierarchy_UserDefinedTableTypes"><value>使用者定義資料表類型</value></data>
|
||||
<data name="SchemaHierarchy_FilegroupFiles"><value>檔案</value></data>
|
||||
<data name="MissingCaption"><value>遺漏標題</value></data>
|
||||
<data name="SchemaHierarchy_BrokerPriorities"><value>Broker 優先權</value></data>
|
||||
<data name="SchemaHierarchy_CryptographicProviders"><value>密碼編譯提供者</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseAuditSpecifications"><value>資料庫稽核規格</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseEncryptionKeys"><value>資料庫加密金鑰</value></data>
|
||||
<data name="SchemaHierarchy_EventSessions"><value>事件工作階段</value></data>
|
||||
<data name="SchemaHierarchy_FullTextStopLists"><value>全文檢索停用字詞表</value></data>
|
||||
<data name="SchemaHierarchy_ResourcePools"><value>資源集區</value></data>
|
||||
<data name="SchemaHierarchy_ServerAudits"><value>稽核</value></data>
|
||||
<data name="SchemaHierarchy_ServerAuditSpecifications"><value>伺服器稽核規格</value></data>
|
||||
<data name="SchemaHierarchy_SpatialIndexes"><value>空間索引</value></data>
|
||||
<data name="SchemaHierarchy_WorkloadGroups"><value>工作負載群組</value></data>
|
||||
<data name="SchemaHierarchy_SqlFiles"><value>SQL 檔案</value></data>
|
||||
<data name="SchemaHierarchy_ServerFunctions"><value>伺服器函式</value></data>
|
||||
<data name="SchemaHierarchy_SqlType"><value>SQL 類型</value></data>
|
||||
<data name="SchemaHierarchy_ServerOptions"><value>伺服器選項</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseDiagrams"><value>資料庫圖表</value></data>
|
||||
<data name="SchemaHierarchy_SystemTables"><value>系統資料表</value></data>
|
||||
<data name="SchemaHierarchy_Databases"><value>資料庫</value></data>
|
||||
<data name="SchemaHierarchy_SystemContracts"><value>系統合約</value></data>
|
||||
<data name="SchemaHierarchy_SystemDatabases"><value>系統資料庫</value></data>
|
||||
<data name="SchemaHierarchy_SystemMessageTypes"><value>系統訊息類型</value></data>
|
||||
<data name="SchemaHierarchy_SystemQueues"><value>系統佇列</value></data>
|
||||
<data name="SchemaHierarchy_SystemServices"><value>系統服務</value></data>
|
||||
<data name="SchemaHierarchy_SystemStoredProcedures"><value>系統預存程序</value></data>
|
||||
<data name="SchemaHierarchy_SystemViews"><value>系統檢視表</value></data>
|
||||
<data name="SchemaHierarchy_DataTierApplications"><value>資料層應用程式</value></data>
|
||||
<data name="SchemaHierarchy_ExtendedStoredProcedures"><value>擴充預存程序</value></data>
|
||||
<data name="SchemaHierarchy_SystemAggregateFunctions"><value>彙總函式</value></data>
|
||||
<data name="SchemaHierarchy_SystemApproximateNumerics"><value>近似數值</value></data>
|
||||
<data name="SchemaHierarchy_SystemBinaryStrings"><value>二進位字串</value></data>
|
||||
<data name="SchemaHierarchy_SystemCharacterStrings"><value>字元字串</value></data>
|
||||
<data name="SchemaHierarchy_SystemCLRDataTypes"><value>CLR 資料型別</value></data>
|
||||
<data name="SchemaHierarchy_SystemConfigurationFunctions"><value>組態函式</value></data>
|
||||
<data name="SchemaHierarchy_SystemCursorFunctions"><value>資料指標函式</value></data>
|
||||
<data name="SchemaHierarchy_SystemDataTypes"><value>系統資料型別</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTime"><value>日期和時間</value></data>
|
||||
<data name="SchemaHierarchy_SystemDateAndTimeFunctions"><value>日期和時間函式</value></data>
|
||||
<data name="SchemaHierarchy_SystemExactNumerics"><value>精確數值</value></data>
|
||||
<data name="SchemaHierarchy_SystemFunctions"><value>系統函式</value></data>
|
||||
<data name="SchemaHierarchy_SystemHierarchyIdFunctions"><value>階層識別碼函式</value></data>
|
||||
<data name="SchemaHierarchy_SystemMathematicalFunctions"><value>數學函式</value></data>
|
||||
<data name="SchemaHierarchy_SystemMetadataFunctions"><value>中繼資料函式</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherDataTypes"><value>其他資料型別</value></data>
|
||||
<data name="SchemaHierarchy_SystemOtherFunctions"><value>其他函式</value></data>
|
||||
<data name="SchemaHierarchy_SystemRowsetFunctions"><value>資料列集函式</value></data>
|
||||
<data name="SchemaHierarchy_SystemSecurityFunctions"><value>安全性函式</value></data>
|
||||
<data name="SchemaHierarchy_SystemSpatialDataTypes"><value>空間資料型別</value></data>
|
||||
<data name="SchemaHierarchy_SystemStringFunctions"><value>字串函式</value></data>
|
||||
<data name="SchemaHierarchy_SystemSystemStatisticalFunctions"><value>系統統計函式</value></data>
|
||||
<data name="SchemaHierarchy_SystemTextAndImageFunctions"><value>文字和影像函式</value></data>
|
||||
<data name="SchemaHierarchy_SystemUnicodeCharacterStrings"><value>Unicode 字元字串</value></data>
|
||||
<data name="SchemaHierarchy_AggregateFunctions"><value>彙總函式</value></data>
|
||||
<data name="SchemaHierarchy_ScalarValuedFunctions"><value>純量值函式</value></data>
|
||||
<data name="SchemaHierarchy_TableValuedFunctions"><value>資料表值函式</value></data>
|
||||
<data name="SchemaHierarchy_SystemExtendedStoredProcedures"><value>系統擴充預存程序</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInType"><value>內建型別</value></data>
|
||||
<data name="SchemaHierarchy_BuiltInServerRole"><value>內建伺服器角色</value></data>
|
||||
<data name="SchemaHierarchy_UserWithPassword"><value>有密碼的使用者</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyList"><value>搜尋屬性清單</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPolicies"><value>安全性原則</value></data>
|
||||
<data name="SchemaHierarchy_SecurityPredicates"><value>安全性述詞</value></data>
|
||||
<data name="SchemaHierarchy_ServerRole"><value>伺服器角色</value></data>
|
||||
<data name="SchemaHierarchy_SearchPropertyLists"><value>搜尋屬性清單</value></data>
|
||||
<data name="SchemaHierarchy_ColumnStoreIndexes"><value>資料行儲存索引</value></data>
|
||||
<data name="SchemaHierarchy_TableTypeIndexes"><value>資料表類型索引</value></data>
|
||||
<data name="SchemaHierarchy_SelectiveXmlIndexes"><value>選擇性 XML 索引</value></data>
|
||||
<data name="SchemaHierarchy_XmlNamespaces"><value>XML 命名空間</value></data>
|
||||
<data name="SchemaHierarchy_XmlTypedPromotedPaths"><value>XML 具類型的升級路徑</value></data>
|
||||
<data name="SchemaHierarchy_SqlTypedPromotedPaths"><value>T-SQL 具類型的升級路徑</value></data>
|
||||
<data name="SchemaHierarchy_DatabaseScopedCredentials"><value>資料庫範圍認證</value></data>
|
||||
<data name="SchemaHierarchy_ExternalDataSources"><value>外部資料來源</value></data>
|
||||
<data name="SchemaHierarchy_ExternalFileFormats"><value>外部檔案格式</value></data>
|
||||
<data name="SchemaHierarchy_ExternalResources"><value>外部資源</value></data>
|
||||
<data name="SchemaHierarchy_ExternalTables"><value>外部資料表</value></data>
|
||||
<data name="SchemaHierarchy_AlwaysEncryptedKeys"><value>Always Encrypted 金鑰</value></data>
|
||||
<data name="SchemaHierarchy_ColumnMasterKeys"><value>資料行主要金鑰</value></data>
|
||||
<data name="SchemaHierarchy_ColumnEncryptionKeys"><value>資料行加密金鑰</value></data>
|
||||
<data name="SchemaHierarchy_Server"><value>伺服器</value></data>
|
||||
<data name="ScriptingParams_ConnectionString_Property_Invalid"><value>剖析屬性 ScriptingParams.ConnectionString 時發生錯誤</value></data>
|
||||
<data name="ScriptingParams_FilePath_Property_Invalid"><value>ScriptingParams.FilePath 屬性指定的路径是無效目錄</value></data>
|
||||
<data name="ScriptingListObjectsCompleteParams_ConnectionString_Property_Invalid"><value>剖析屬性 ScriptingListObjectsCompleteParams.ConnectionString 時發生錯誤</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterLabelFormatString"><value>{0} ({1},{2},{3})</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterNoDefaultLabel"><value>無預設值</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputLabel"><value>輸入</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputLabel"><value>輸入/輸出</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputReadOnlyLabel"><value>輸入/唯讀</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterInputOutputReadOnlyLabel"><value>輸入/輸出/唯讀</value></data>
|
||||
<data name="SchemaHierarchy_SubroutineParameterDefaultLabel"><value>預設值</value></data>
|
||||
<data name="SchemaHierarchy_NullColumn_Label"><value>Null</value></data>
|
||||
<data name="SchemaHierarchy_NotNullColumn_Label"><value>非 Null</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithType"><value>{0} ({1},{2})</value></data>
|
||||
<data name="SchemaHierarchy_UDDTLabelWithoutType"><value>{0} ({1})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithType"><value>{0} ({1} 已計算,{2},{3})</value></data>
|
||||
<data name="SchemaHierarchy_ComputedColumnLabelWithoutType"><value>{0} ({1} 已計算)</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithoutType"><value>{0} (資料行集,{1})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithType"><value>{0} (資料行集,{1}{2},{3})</value></data>
|
||||
<data name="SchemaHierarchy_ColumnSetLabelWithTypeAndKeyString"><value>{0} (資料行集,{1},{2},{3})</value></data>
|
||||
<data name="UniqueIndex_LabelPart"><value>唯一</value></data>
|
||||
<data name="NonUniqueIndex_LabelPart"><value>非唯一</value></data>
|
||||
<data name="ClusteredIndex_LabelPart"><value>叢集</value></data>
|
||||
<data name="NonClusteredIndex_LabelPart"><value>非叢集</value></data>
|
||||
<data name="History_LabelPart"><value>歷程記錄</value></data>
|
||||
<data name="SystemVersioned_LabelPart"><value>系統建立版本</value></data>
|
||||
<data name="unavailable"><value>無法使用</value></data>
|
||||
<data name="filegroup_dialog_defaultFilegroup"><value>當前預設檔案群組: {0}</value></data>
|
||||
<data name="filegroup_dialog_title"><value>{0} 的新檔案群組</value></data>
|
||||
<data name="filegroups_default"><value>預設值</value></data>
|
||||
<data name="filegroups_files"><value>檔案</value></data>
|
||||
<data name="filegroups_name"><value>名稱</value></data>
|
||||
<data name="filegroups_readonly"><value>唯讀</value></data>
|
||||
<data name="general_autogrowth"><value>自動成長 / 大小上限</value></data>
|
||||
<data name="general_builderText"><value>...</value></data>
|
||||
<data name="general_default"><value><預設></value></data>
|
||||
<data name="general_fileGroup"><value>檔案群組</value></data>
|
||||
<data name="general_fileName"><value>邏輯名稱</value></data>
|
||||
<data name="general_fileType"><value>檔案類型</value></data>
|
||||
<data name="general_initialSize"><value>初始大小 (MB)</value></data>
|
||||
<data name="general_newFilegroup"><value><新增檔案群組></value></data>
|
||||
<data name="general_path"><value>路徑</value></data>
|
||||
<data name="general_physicalFileName"><value>檔案名稱</value></data>
|
||||
<data name="general_rawDevice"><value><未經處理的裝置></value></data>
|
||||
<data name="general_recoveryModel_bulkLogged"><value>大量記錄</value></data>
|
||||
<data name="general_recoveryModel_full"><value>Full</value></data>
|
||||
<data name="general_recoveryModel_simple"><value>Simple</value></data>
|
||||
<data name="general_titleSearchOwner"><value>選取資料庫擁有者</value></data>
|
||||
<data name="prototype_autogrowth_disabled"><value>無</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByMB"><value>以 {0} MB 為單位,限制為 {1} MB</value></data>
|
||||
<data name="prototype_autogrowth_restrictedGrowthByPercent"><value>以百分之 {0} 為單位,限制為 {1} MB</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByMB"><value>以 {0} MB 為單位,無限制</value></data>
|
||||
<data name="prototype_autogrowth_unrestrictedGrowthByPercent"><value>以百分之 {0} 為單位,無限制</value></data>
|
||||
<data name="prototype_autogrowth_unlimitedfilestream"><value>無限制</value></data>
|
||||
<data name="prototype_autogrowth_limitedfilestream"><value>限制為 {0} MB</value></data>
|
||||
<data name="prototype_db_category_automatic"><value>自動</value></data>
|
||||
<data name="prototype_db_category_servicebroker"><value>Service Broker</value></data>
|
||||
<data name="prototype_db_category_collation"><value>定序</value></data>
|
||||
<data name="prototype_db_category_cursor"><value>資料指標</value></data>
|
||||
<data name="prototype_db_category_misc"><value>其他</value></data>
|
||||
<data name="prototype_db_category_recovery"><value>復原</value></data>
|
||||
<data name="prototype_db_category_state"><value>狀態</value></data>
|
||||
<data name="prototype_db_prop_ansiNullDefault"><value>ANSI NULL 預設值</value></data>
|
||||
<data name="prototype_db_prop_ansiNulls"><value>ANSI NULLS 已啟用</value></data>
|
||||
<data name="prototype_db_prop_ansiPadding"><value>
|
||||
ANSI Padding 已啟用</value></data>
|
||||
<data name="prototype_db_prop_ansiWarnings"><value>ANSI Warnings 已啟用</value></data>
|
||||
<data name="prototype_db_prop_arithabort"><value>Arithmetic Abort 已啟用</value></data>
|
||||
<data name="prototype_db_prop_autoClose"><value>自動關閉</value></data>
|
||||
<data name="prototype_db_prop_autoCreateStatistics"><value>自動建立統計資料</value></data>
|
||||
<data name="prototype_db_prop_autoShrink"><value>自動壓縮</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatistics"><value>自動更新統計資料</value></data>
|
||||
<data name="prototype_db_prop_autoUpdateStatisticsAsync"><value>自動非同步更新統計資料</value></data>
|
||||
<data name="prototype_db_prop_caseSensitive"><value>區分大小寫</value></data>
|
||||
<data name="prototype_db_prop_closeCursorOnCommit"><value>認可時關閉資料指標已啟用</value></data>
|
||||
<data name="prototype_db_prop_collation"><value>定序</value></data>
|
||||
<data name="prototype_db_prop_concatNullYieldsNull"><value>串連 Null 產生 Null</value></data>
|
||||
<data name="prototype_db_prop_databaseCompatibilityLevel"><value>資料庫相容性層級</value></data>
|
||||
<data name="prototype_db_prop_databaseState"><value>資料庫狀態</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor"><value>預設資料指標</value></data>
|
||||
<data name="prototype_db_prop_fullTextIndexing"><value>全文檢索索引已啟用</value></data>
|
||||
<data name="prototype_db_prop_numericRoundAbort"><value>數值捨入中止</value></data>
|
||||
<data name="prototype_db_prop_pageVerify"><value>頁面確認</value></data>
|
||||
<data name="prototype_db_prop_quotedIdentifier"><value>引號識別碼已啟用</value></data>
|
||||
<data name="prototype_db_prop_readOnly"><value>資料庫唯讀</value></data>
|
||||
<data name="prototype_db_prop_recursiveTriggers"><value>遞迴觸發程序已啟用</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess"><value>限制存取</value></data>
|
||||
<data name="prototype_db_prop_selectIntoBulkCopy"><value>選取/大量複製</value></data>
|
||||
<data name="prototype_db_prop_honorBrokerPriority"><value>接受 Broker 優先權</value></data>
|
||||
<data name="prototype_db_prop_serviceBrokerGuid"><value>Service Broker 識別碼</value></data>
|
||||
<data name="prototype_db_prop_brokerEnabled"><value>Broker 已啟用</value></data>
|
||||
<data name="prototype_db_prop_truncateLogOnCheckpoint"><value>在檢查點截斷記錄</value></data>
|
||||
<data name="prototype_db_prop_dbChaining"><value>已啟用跨資料庫擁有權鏈結</value></data>
|
||||
<data name="prototype_db_prop_trustworthy"><value>可信任</value></data>
|
||||
<data name="prototype_db_prop_dateCorrelationOptimization"><value>已啟用日期相互關聯最佳化 prototype_db_prop_parameterization = 參數化</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_forced"><value>強制</value></data>
|
||||
<data name="prototype_db_prop_parameterization_value_simple"><value>簡易</value></data>
|
||||
<data name="prototype_file_dataFile"><value>資料列資料</value></data>
|
||||
<data name="prototype_file_logFile"><value>LOG</value></data>
|
||||
<data name="prototype_file_filestreamFile"><value>FILESTREAM 資料</value></data>
|
||||
<data name="prototype_file_noFileGroup"><value> 不適用</value></data>
|
||||
<data name="prototype_file_defaultpathstring"><value><預設路徑></value></data>
|
||||
<data name="title_openConnectionsMustBeClosed"><value>開啟連接</value></data>
|
||||
<data name="warning_openConnectionsMustBeClosed"><value>為了變更資料庫屬性,SQL Server必須關閉所有其他與資料庫的連線。
|
||||
確定要變更屬性並關閉所有其他連線嗎?</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_autoClosed"><value>AUTO_CLOSED</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_emergency"><value>EMERGENCY</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_inaccessible"><value>INACCESSIBLE</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_normal"><value>NORMAL</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_offline"><value>OFFLINE</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recovering"><value>RECOVERING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_recoveryPending"><value>RECOVERY PENDING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_restoring"><value>RESTORING</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_shutdown"><value>SHUTDOWN</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_standby"><value>STANDBY</value></data>
|
||||
<data name="prototype_db_prop_databaseState_value_suspect"><value>SUSPECT</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_global"><value>GLOBAL</value></data>
|
||||
<data name="prototype_db_prop_defaultCursor_value_local"><value>LOCAL</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_multiple"><value>MULTI_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_restricted"><value>RESTRICTED_USER</value></data>
|
||||
<data name="prototype_db_prop_restrictAccess_value_single"><value>SINGLE_USER</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_checksum"><value>CHECKSUM</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_none"><value>NONE</value></data>
|
||||
<data name="prototype_db_prop_pageVerify_value_tornPageDetection"><value>TORN_PAGE_DETECTION</value></data>
|
||||
<data name="prototype_db_prop_varDecimalEnabled"><value>VarDecimal 儲存格式已啟用</value></data>
|
||||
<data name="compatibilityLevel_katmai"><value>SQL Server 2008 (100)</value></data>
|
||||
<data name="prototype_db_prop_encryptionEnabled"><value>加密已啟用</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_off"><value>OFF</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_on"><value>ON</value></data>
|
||||
<data name="prototype_db_prop_databasescopedconfig_value_primary"><value>PRIMARY</value></data>
|
||||
<data name="error_db_prop_invalidleadingColumns"><value>散發原則 HASH 的前置雜湊資料行是選擇性的,但應該介於 1 到 16 個資料行之間。</value></data>
|
||||
<data name="compatibilityLevel_denali"><value>SQL Server 2012 (110)</value></data>
|
||||
<data name="compatibilityLevel_sql14"><value>SQL Server 2014 (120)</value></data>
|
||||
<data name="compatibilityLevel_sql15"><value>SQL Server 2016 (130)</value></data>
|
||||
<data name="compatibilityLevel_sqlvNext"><value>SQL Server vNext (140)</value></data>
|
||||
<data name="general_containmentType_None"><value>無</value></data>
|
||||
<data name="general_containmentType_Partial"><value>Partial</value></data>
|
||||
<data name="filegroups_filestreamFiles"><value>FILESTREAM 檔案</value></data>
|
||||
<data name="prototype_file_noApplicableFileGroup"><value>沒有適用的檔案群組</value></data>
|
||||
<data name="DatabaseNotAccessible"><value>無法存取資料庫 {0}。</value></data>
|
||||
<data name="QueryServiceResultSetHasNoResults"><value>沒有查詢結果可以回傳</value></data>
|
||||
<data name="QueryServiceResultSetTooLarge"><value>資料列因結果集太長而無法載入</value></data>
|
||||
<data name="prototype_db_prop_parameterization"><value>參數化</value></data>
|
||||
<data name="ConflictWithNoRecovery"><value>不允許使用 NORECOVERY 選項還原備份時,請指定這個選項。</value></data>
|
||||
<data name="InvalidPathForDatabaseFile"><value>資料庫檔案的路徑無效: '{0}'</value></data>
|
||||
<data name="Log"><value>記錄檔</value></data>
|
||||
<data name="RestorePlanFailed"><value>無法建立還原計畫</value></data>
|
||||
<data name="RestoreNotSupported"><value>不支援還原資料庫</value></data>
|
||||
<data name="RestoreTaskName"><value>還原資料庫</value></data>
|
||||
<data name="RestoreCopyOnly"><value>(僅複製)</value></data>
|
||||
<data name="RestoreBackupSetComponent"><value>元件</value></data>
|
||||
<data name="RestoreBackupSetType"><value>型別</value></data>
|
||||
<data name="RestoreBackupSetServer"><value>伺服器</value></data>
|
||||
<data name="RestoreBackupSetDatabase"><value>資料庫</value></data>
|
||||
<data name="RestoreBackupSetPosition"><value>位置</value></data>
|
||||
<data name="RestoreBackupSetFirstLsn"><value>第一個 LSN</value></data>
|
||||
<data name="RestoreBackupSetLastLsn"><value>最後一個 LSN</value></data>
|
||||
<data name="RestoreBackupSetCheckpointLsn"><value>檢查點 LSN</value></data>
|
||||
<data name="RestoreBackupSetFullLsn"><value>完整 LSN</value></data>
|
||||
<data name="RestoreBackupSetStartDate"><value>開始日期</value></data>
|
||||
<data name="RestoreBackupSetFinishDate"><value>完成日期</value></data>
|
||||
<data name="RestoreBackupSetSize"><value>大小</value></data>
|
||||
<data name="RestoreBackupSetUserName"><value>使用者名稱</value></data>
|
||||
<data name="RestoreBackupSetExpiration"><value>逾期</value></data>
|
||||
<data name="RestoreBackupSetName"><value>名稱</value></data>
|
||||
<data name="TheLastBackupTaken"><value>上次建立的備份 ({0})</value></data>
|
||||
<data name="BackupTaskName"><value>備份資料庫</value></data>
|
||||
<data name="TaskInProgress"><value>進行中</value></data>
|
||||
<data name="TaskCompleted"><value>已完成</value></data>
|
||||
<data name="ScriptTaskName"><value>指令碼</value></data>
|
||||
<data name="ProfilerConnectionNotFound"><value>找不到連接</value></data>
|
||||
<data name="BackupPathIsFolderError"><value>指定的檔案名稱也是目錄名稱: {0}</value></data>
|
||||
<data name="InvalidBackupPathError"><value>無法確認備份檔案位置的存在: {0}</value></data>
|
||||
<data name="InvalidPathError"><value>無法存取伺服器上指定的路徑: {0}</value></data>
|
||||
<data name="NoBackupsetsToRestore"><value>無選擇的備份集可還原</value></data>
|
||||
<data name="NeverBackedUp"><value>永不</value></data>
|
||||
<data name="AzureSqlDbEdition"><value>Azure SQL DB</value></data>
|
||||
<data name="AzureSqlDwEdition"><value>Azure SQL 資料倉儲</value></data>
|
||||
<data name="AzureSqlStretchEdition"><value>Azure SQL 延展資料庫</value></data>
|
||||
<data name="Error_InvalidDirectoryName"><value>路徑 {0} 不是有效的目錄</value></data>
|
||||
<data name="Error_ExistingDirectoryName"><value>因目錄 {0} 中已有存在的檔案名稱 {1}</value></data>
|
||||
<data name="EditDataValueTooLarge"><value>數值 {0} 太大以致於無法符合欄位型態 {1}</value></data>
|
||||
</root>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,39 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<OutputType>Library</OutputType>
|
||||
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||
<PackageId>Microsoft.SqlTools.CoreServices</PackageId>
|
||||
<AssemblyName>Microsoft.SqlTools.CoreServices</AssemblyName>
|
||||
<EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems>
|
||||
<ApplicationIcon />
|
||||
<StartupObject />
|
||||
<Copyright><EFBFBD> Microsoft Corporation. All rights reserved.</Copyright>
|
||||
<PackageDescription>
|
||||
A collection of core services that can be reused by a Database Management Protocol-based service using the Microsoft.SqlTools.Hosting framework.
|
||||
</PackageDescription>
|
||||
<Description>$(PackageDescription)</Description>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="System.Data.SqlClient" Version="4.5.0-preview2-26406-04" />
|
||||
<PackageReference Include="Microsoft.SqlServer.Management.XEvent" Version="140.17279.0-xplat" />
|
||||
<PackageReference Include="Microsoft.SqlServer.Management.XEventEnum" Version="140.17279.0-xplat" />
|
||||
<PackageReference Include="Microsoft.SqlServer.Management.XEventDBScoped" Version="140.17279.0-xplat" />
|
||||
<PackageReference Include="Microsoft.SqlServer.Management.XEventDBScopedEnum" Version="140.17279.0-xplat" />
|
||||
<PackageReference Include="Microsoft.SqlServer.Management.SmoMetadataProvider" Version="140.17279.0-xplat" />
|
||||
<PackageReference Include="Microsoft.SqlServer.Management.SqlScriptPublishModel" Version="140.17279.0-xplat" />
|
||||
<PackageReference Include="Microsoft.SqlServer.SqlParser" Version="140.17279.0-xplat" />
|
||||
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.5.0-preview2-26406-04" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.0.4" />
|
||||
<PackageReference Include="System.Runtime.Loader" Version="4.3.0" />
|
||||
<PackageReference Include="System.Composition" Version="1.1.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Microsoft.SqlTools.Hosting.v2\Microsoft.SqlTools.Hosting.csproj" />
|
||||
<ProjectReference Include="..\Microsoft.SqlTools.DataProtocol.Contracts\Microsoft.SqlTools.DataProtocol.Contracts.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Localization\sr.resx" />
|
||||
<None Include="Localization\sr.strings" />
|
||||
</ItemGroup>
|
||||
<Import Project="..\sqltools.common.targets" />
|
||||
</Project>
|
||||
@@ -0,0 +1,15 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
[assembly: InternalsVisibleTo("Microsoft.SqlTools.Hosting.UnitTests")]
|
||||
[assembly: InternalsVisibleTo("Microsoft.SqlTools.Services.UnitTests")]
|
||||
|
||||
// Allowing internals visible access to Moq library to help testing
|
||||
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Microsoft.SqlTools.Hosting.Utility;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.SqlContext
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Handles backwards compatibility of settings by checking for settings in a priority list. If a settings
|
||||
/// group such as Intellisense is defined on a serialized setting it's used in the order of mssql, then sql, then
|
||||
/// falls back to a default value.
|
||||
/// </summary>
|
||||
public class CompoundToolsSettingsValues: ISqlToolsSettingsValues
|
||||
{
|
||||
private List<ISqlToolsSettingsValues> priorityList = new List<ISqlToolsSettingsValues>();
|
||||
private SqlToolsSettingsValues defaultValues;
|
||||
public CompoundToolsSettingsValues(ISqlToolsSettingsValues mssql, ISqlToolsSettingsValues all)
|
||||
{
|
||||
Validate.IsNotNull(nameof(mssql), mssql);
|
||||
Validate.IsNotNull(nameof(all), all);
|
||||
priorityList.Add(mssql);
|
||||
priorityList.Add(all);
|
||||
// Always add in a fallback which has default values to be used.
|
||||
defaultValues = new SqlToolsSettingsValues(createDefaults: true);
|
||||
priorityList.Add(defaultValues);
|
||||
}
|
||||
|
||||
private T GetSettingOrDefault<T>(Func<ISqlToolsSettingsValues, T> lookup)
|
||||
where T : new()
|
||||
{
|
||||
T value = priorityList.Select( (settings) => lookup(settings)).Where(val => val != null).FirstOrDefault();
|
||||
return value != null ? value : new T();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the detailed IntelliSense settings
|
||||
/// </summary>
|
||||
public IntelliSenseSettings IntelliSense
|
||||
{
|
||||
get
|
||||
{
|
||||
return GetSettingOrDefault((settings) => settings.IntelliSense);
|
||||
}
|
||||
set
|
||||
{
|
||||
priorityList[0].IntelliSense = value;
|
||||
}
|
||||
}
|
||||
|
||||
// /// <summary>
|
||||
// /// Gets or sets the query execution settings
|
||||
// /// </summary>
|
||||
// public QueryExecutionSettings QueryExecutionSettings
|
||||
// {
|
||||
// get
|
||||
// {
|
||||
// return GetSettingOrDefault((settings) => settings.QueryExecutionSettings);
|
||||
// }
|
||||
// set
|
||||
// {
|
||||
// priorityList[0].QueryExecutionSettings = value;
|
||||
// }
|
||||
// }
|
||||
|
||||
// /// <summary>
|
||||
// /// Gets or sets the formatter settings
|
||||
// /// </summary>
|
||||
// public FormatterSettings Format
|
||||
// {
|
||||
// get
|
||||
// {
|
||||
// return GetSettingOrDefault((settings) => settings.Format);
|
||||
// }
|
||||
// set
|
||||
// {
|
||||
// priorityList[0].Format = value;
|
||||
// }
|
||||
// }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the object explorer settings
|
||||
/// </summary>
|
||||
public ObjectExplorerSettings ObjectExplorer
|
||||
{
|
||||
get
|
||||
{
|
||||
return GetSettingOrDefault((settings) => settings.ObjectExplorer);
|
||||
}
|
||||
set
|
||||
{
|
||||
priorityList[0].ObjectExplorer = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.SqlContext
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the common settings used by the tools service
|
||||
/// </summary>
|
||||
public interface ISqlToolsSettingsValues
|
||||
{
|
||||
/// <summary>
|
||||
/// Intellisense specific settings
|
||||
/// </summary>
|
||||
IntelliSenseSettings IntelliSense { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Query execution specific settings
|
||||
/// </summary>
|
||||
// QueryExecutionSettings QueryExecutionSettings { get; set; }
|
||||
|
||||
// /// <summary>
|
||||
// /// Formatter settings
|
||||
// /// </summary>
|
||||
// FormatterSettings Format { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Object Explorer specific settings
|
||||
/// </summary>
|
||||
ObjectExplorerSettings ObjectExplorer { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.SqlContext
|
||||
{
|
||||
/// <summary>
|
||||
/// Class for serialization and deserialization of IntelliSense settings
|
||||
/// </summary>
|
||||
public class IntelliSenseSettings
|
||||
{
|
||||
/// <summary>
|
||||
/// Initialize the IntelliSense settings defaults
|
||||
/// </summary>
|
||||
public IntelliSenseSettings()
|
||||
{
|
||||
this.EnableIntellisense = true;
|
||||
this.EnableSuggestions = true;
|
||||
this.LowerCaseSuggestions = false;
|
||||
this.EnableErrorChecking = true;
|
||||
this.EnableQuickInfo = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a flag determining if IntelliSense is enabled
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool EnableIntellisense { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a flag determining if suggestions are enabled
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool? EnableSuggestions { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a flag determining if built-in suggestions should be lowercase
|
||||
/// </summary>
|
||||
public bool? LowerCaseSuggestions { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a flag determining if diagnostics are enabled
|
||||
/// </summary>
|
||||
public bool? EnableErrorChecking { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a flag determining if quick info is enabled
|
||||
/// </summary>
|
||||
public bool? EnableQuickInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Update the Intellisense settings
|
||||
/// </summary>
|
||||
/// <param name="settings"></param>
|
||||
public void Update(IntelliSenseSettings settings)
|
||||
{
|
||||
if (settings != null)
|
||||
{
|
||||
this.EnableIntellisense = settings.EnableIntellisense;
|
||||
this.EnableSuggestions = settings.EnableSuggestions;
|
||||
this.LowerCaseSuggestions = settings.LowerCaseSuggestions;
|
||||
this.EnableErrorChecking = settings.EnableErrorChecking;
|
||||
this.EnableQuickInfo = settings.EnableQuickInfo;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.SqlContext
|
||||
{
|
||||
/// <summary>
|
||||
/// Contract for receiving object explorer settings as part of workspace settings
|
||||
/// </summary>
|
||||
public class ObjectExplorerSettings
|
||||
{
|
||||
public static int DefaultCreateSessionTimeout = 45;
|
||||
public static int DefaultExpandTimeout = 45;
|
||||
|
||||
public ObjectExplorerSettings()
|
||||
{
|
||||
CreateSessionTimeout = DefaultCreateSessionTimeout;
|
||||
ExpandTimeout = DefaultExpandTimeout;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Number of seconds to wait before fail create session request with timeout error
|
||||
/// </summary>
|
||||
public int CreateSessionTimeout { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of seconds to wait before fail expand request with timeout error
|
||||
/// </summary>
|
||||
public int ExpandTimeout { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,145 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.SqlContext
|
||||
{
|
||||
/// <summary>
|
||||
/// Class for serialization and deserialization of the settings the SQL Tools Service needs.
|
||||
/// </summary>
|
||||
public class SqlToolsSettings
|
||||
{
|
||||
private ISqlToolsSettingsValues sqlTools = null;
|
||||
private SqlToolsSettingsValues mssqlTools = null;
|
||||
private SqlToolsSettingsValues allSqlTools = null;
|
||||
|
||||
public ISqlToolsSettingsValues SqlTools
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.sqlTools == null)
|
||||
{
|
||||
this.sqlTools = new CompoundToolsSettingsValues(MssqlTools, AllSqlTools);
|
||||
}
|
||||
return this.sqlTools;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.sqlTools = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the underlying settings value object
|
||||
/// </summary>
|
||||
[JsonProperty("mssql")]
|
||||
public SqlToolsSettingsValues MssqlTools
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.mssqlTools == null)
|
||||
{
|
||||
this.mssqlTools = new SqlToolsSettingsValues(false);
|
||||
}
|
||||
return this.mssqlTools;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.mssqlTools = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the underlying settings value object
|
||||
/// </summary>
|
||||
[JsonProperty("sql")]
|
||||
public SqlToolsSettingsValues AllSqlTools
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.allSqlTools == null)
|
||||
{
|
||||
this.allSqlTools = new SqlToolsSettingsValues(false);
|
||||
}
|
||||
return this.allSqlTools;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.sqlTools = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Query excution settings forwarding property
|
||||
/// </summary>
|
||||
// public QueryExecutionSettings QueryExecutionSettings
|
||||
// {
|
||||
// get { return this.SqlTools.QueryExecutionSettings; }
|
||||
// }
|
||||
|
||||
/// <summary>
|
||||
/// Updates the extension settings
|
||||
/// </summary>
|
||||
/// <param name="settings"></param>
|
||||
public void Update(SqlToolsSettings settings)
|
||||
{
|
||||
if (settings != null)
|
||||
{
|
||||
this.SqlTools.IntelliSense.Update(settings.SqlTools.IntelliSense);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a flag determining if diagnostics are enabled
|
||||
/// </summary>
|
||||
public bool IsDiagnosticsEnabled
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.SqlTools.IntelliSense.EnableIntellisense
|
||||
&& this.SqlTools.IntelliSense.EnableErrorChecking.Value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a flag determining if suggestions are enabled
|
||||
/// </summary>
|
||||
public bool IsSuggestionsEnabled
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.SqlTools.IntelliSense.EnableIntellisense
|
||||
&& this.SqlTools.IntelliSense.EnableSuggestions.Value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a flag determining if quick info is enabled
|
||||
/// </summary>
|
||||
public bool IsQuickInfoEnabled
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.SqlTools.IntelliSense.EnableIntellisense
|
||||
&& this.SqlTools.IntelliSense.EnableQuickInfo.Value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a flag determining if IntelliSense is enabled
|
||||
/// </summary>
|
||||
public bool IsIntelliSenseEnabled
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.SqlTools.IntelliSense.EnableIntellisense;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.SqlContext
|
||||
{
|
||||
/// <summary>
|
||||
/// Class that is used to serialize and deserialize SQL Tools settings
|
||||
/// </summary>
|
||||
public class SqlToolsSettingsValues : ISqlToolsSettingsValues
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes the Sql Tools settings values
|
||||
/// </summary>
|
||||
public SqlToolsSettingsValues(bool createDefaults = true)
|
||||
{
|
||||
if (createDefaults)
|
||||
{
|
||||
IntelliSense = new IntelliSenseSettings();
|
||||
// QueryExecutionSettings = new QueryExecutionSettings();
|
||||
// Format = new FormatterSettings();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the detailed IntelliSense settings
|
||||
/// </summary>
|
||||
public IntelliSenseSettings IntelliSense { get; set; }
|
||||
|
||||
// /// <summary>
|
||||
// /// Gets or sets the query execution settings
|
||||
// /// </summary>
|
||||
// [JsonProperty("query")]
|
||||
// public QueryExecutionSettings QueryExecutionSettings { get; set; }
|
||||
|
||||
// /// <summary>
|
||||
// /// Gets or sets the formatter settings
|
||||
// /// </summary>
|
||||
// [JsonProperty("format")]
|
||||
// public FormatterSettings Format { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the formatter settings
|
||||
/// </summary>
|
||||
[JsonProperty("objectExplorer")]
|
||||
public ObjectExplorerSettings ObjectExplorer { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Utility
|
||||
{
|
||||
/// <summary>
|
||||
/// Common Constant values used across multiple services
|
||||
/// </summary>
|
||||
public static class CommonConstants
|
||||
{
|
||||
public const string MasterDatabaseName = "master";
|
||||
public const string MsdbDatabaseName = "msdb";
|
||||
public const string ModelDatabaseName = "model";
|
||||
public const string TempDbDatabaseName = "tempdb";
|
||||
|
||||
public const string DefaultBatchSeperator = "GO";
|
||||
}
|
||||
}
|
||||
26
src/Microsoft.SqlTools.CoreServices/Utility/DatabaseUtils.cs
Normal file
26
src/Microsoft.SqlTools.CoreServices/Utility/DatabaseUtils.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Utility
|
||||
{
|
||||
public class DatabaseUtils
|
||||
{
|
||||
/// <summary>
|
||||
/// Check if the database is a system database
|
||||
/// </summary>
|
||||
/// <param name="databaseName">the name of database</param>
|
||||
/// <returns>return true if the database is a system database</returns>
|
||||
public static bool IsSystemDatabaseConnection(string databaseName)
|
||||
{
|
||||
return (string.IsNullOrWhiteSpace(databaseName) ||
|
||||
string.Compare(databaseName, CommonConstants.MasterDatabaseName, StringComparison.OrdinalIgnoreCase) == 0 ||
|
||||
string.Compare(databaseName, CommonConstants.MsdbDatabaseName, StringComparison.OrdinalIgnoreCase) == 0 ||
|
||||
string.Compare(databaseName, CommonConstants.ModelDatabaseName, StringComparison.OrdinalIgnoreCase) == 0 ||
|
||||
string.Compare(databaseName, CommonConstants.TempDbDatabaseName, StringComparison.OrdinalIgnoreCase) == 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.SqlTools.Hosting.Utility;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices
|
||||
{
|
||||
/// <summary>
|
||||
/// A class to calculate the value for the metrics using the given bucket
|
||||
/// </summary>
|
||||
public class InteractionMetrics<T>
|
||||
{
|
||||
/// <summary>
|
||||
/// Creates new instance given a bucket of metrics
|
||||
/// </summary>
|
||||
public InteractionMetrics(int[] metrics)
|
||||
{
|
||||
Validate.IsNotNull("metrics", metrics);
|
||||
if(metrics.Length == 0)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("metrics");
|
||||
}
|
||||
|
||||
Counters = new ConcurrentDictionary<string, T>();
|
||||
if (!IsSorted(metrics))
|
||||
{
|
||||
Array.Sort(metrics);
|
||||
}
|
||||
Metrics = metrics;
|
||||
}
|
||||
|
||||
private ConcurrentDictionary<string, T> Counters { get; }
|
||||
|
||||
private object perfCountersLock = new object();
|
||||
|
||||
/// <summary>
|
||||
/// The metrics bucket
|
||||
/// </summary>
|
||||
public int[] Metrics { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if the given list is sorted
|
||||
/// </summary>
|
||||
private bool IsSorted(int[] metrics)
|
||||
{
|
||||
if (metrics.Length > 1)
|
||||
{
|
||||
int previous = metrics[0];
|
||||
for (int i = 1; i < metrics.Length; i++)
|
||||
{
|
||||
if(metrics[i] < previous)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
previous = metrics[i];
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update metric value given new number
|
||||
/// </summary>
|
||||
public void UpdateMetrics(double duration, T newValue, Func<string, T, T> updateValueFactory)
|
||||
{
|
||||
int metric = Metrics[Metrics.Length - 1];
|
||||
for (int i = 0; i < Metrics.Length; i++)
|
||||
{
|
||||
if (duration <= Metrics[i])
|
||||
{
|
||||
metric = Metrics[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
string key = metric.ToString();
|
||||
Counters.AddOrUpdate(key, newValue, updateValueFactory);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the quantile
|
||||
/// </summary>
|
||||
public Dictionary<string, T> Quantile
|
||||
{
|
||||
get
|
||||
{
|
||||
return Counters.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
121
src/Microsoft.SqlTools.CoreServices/Workspace/SettingsService.cs
Normal file
121
src/Microsoft.SqlTools.CoreServices/Workspace/SettingsService.cs
Normal file
@@ -0,0 +1,121 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.SqlTools.DataProtocol.Contracts.Workspace;
|
||||
using Microsoft.SqlTools.Hosting;
|
||||
using Microsoft.SqlTools.Hosting.Protocol;
|
||||
using Microsoft.SqlTools.Hosting.Utility;
|
||||
|
||||
namespace Microsoft.SqlTools.CoreServices.Workspace
|
||||
{
|
||||
/// <summary>
|
||||
/// Class for handling requests/events that deal with the state of the workspace, including the
|
||||
/// opening and closing of files, the changing of configuration, etc.
|
||||
/// </summary>
|
||||
/// <typeparam name="TConfig">
|
||||
/// The type of the class used for serializing and deserializing the configuration. Must be the
|
||||
/// actual type of the instance otherwise deserialization will be incomplete.
|
||||
/// </typeparam>
|
||||
public class SettingsService<TConfig> where TConfig : class, new()
|
||||
{
|
||||
|
||||
#region Singleton Instance Implementation
|
||||
|
||||
private static Lazy<SettingsService<TConfig>> instance = new Lazy<SettingsService<TConfig>>(() => new SettingsService<TConfig>());
|
||||
|
||||
public static SettingsService<TConfig> Instance
|
||||
{
|
||||
get { return instance.Value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Default, parameterless constructor.
|
||||
/// TODO: Figure out how to make this truely singleton even with dependency injection for tests
|
||||
/// </summary>
|
||||
public SettingsService()
|
||||
{
|
||||
ConfigChangeCallbacks = new List<ConfigChangeCallback>();
|
||||
CurrentSettings = new TConfig();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Properties
|
||||
/// <summary>
|
||||
/// Current settings for the workspace
|
||||
/// </summary>
|
||||
public TConfig CurrentSettings { get; internal set; }
|
||||
|
||||
/// <summary>
|
||||
/// Delegate for callbacks that occur when the configuration for the workspace changes
|
||||
/// </summary>
|
||||
/// <param name="newSettings">The settings that were just set</param>
|
||||
/// <param name="oldSettings">The settings before they were changed</param>
|
||||
/// <param name="eventContext">Context of the event that triggered the callback</param>
|
||||
/// <returns></returns>
|
||||
public delegate Task ConfigChangeCallback(TConfig newSettings, TConfig oldSettings, EventContext eventContext);
|
||||
|
||||
/// <summary>
|
||||
/// List of callbacks to call when the configuration of the workspace changes
|
||||
/// </summary>
|
||||
private List<ConfigChangeCallback> ConfigChangeCallbacks { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public Methods
|
||||
|
||||
public void InitializeService(IServiceHost serviceHost)
|
||||
{
|
||||
// Register the handlers for when changes to the workspae occur
|
||||
serviceHost.SetAsyncEventHandler(DidChangeConfigurationNotification<TConfig>.Type, HandleDidChangeConfigurationNotification);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds a new task to be called when the configuration has been changed. Use this to
|
||||
/// handle changing configuration and changing the current configuration.
|
||||
/// </summary>
|
||||
/// <param name="task">Task to handle the request</param>
|
||||
public void RegisterConfigChangeCallback(ConfigChangeCallback task)
|
||||
{
|
||||
ConfigChangeCallbacks.Add(task);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Event Handlers
|
||||
|
||||
/// <summary>
|
||||
/// Handles the configuration change event
|
||||
/// </summary>
|
||||
internal async Task HandleDidChangeConfigurationNotification(
|
||||
DidChangeConfigurationParams<TConfig> configChangeParams,
|
||||
EventContext eventContext)
|
||||
{
|
||||
try
|
||||
{
|
||||
Logger.Instance.Write(LogLevel.Verbose, "HandleDidChangeConfigurationNotification");
|
||||
|
||||
// Propagate the changes to the event handlers
|
||||
var configUpdateTasks = ConfigChangeCallbacks.Select(
|
||||
t => t(configChangeParams.Settings, CurrentSettings, eventContext));
|
||||
await Task.WhenAll(configUpdateTasks);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.Instance.Write(LogLevel.Error, "Unknown error " + ex.ToString());
|
||||
// Swallow exceptions here to prevent us from crashing
|
||||
// TODO: this probably means the ScriptFile model is in a bad state or out of sync with the actual file; we should recover here
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities.TextDocument;
|
||||
using Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities.Workspace;
|
||||
|
||||
namespace Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities
|
||||
{
|
||||
public class ClientCapabilities
|
||||
{
|
||||
/// <summary>
|
||||
/// Any experimental client capabilities
|
||||
/// </summary>
|
||||
public object Experimental { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Text document specific client capabilities, can be null
|
||||
/// </summary>
|
||||
public TextDocumentCapabilities TextDocument { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Workspace specific client capabilities, can be null
|
||||
/// </summary>
|
||||
public WorkspaceCapabilities Workspace { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities
|
||||
{
|
||||
public class DynamicRegistrationCapability
|
||||
{
|
||||
/// <summary>
|
||||
/// Whether the capabilitiy supports dynamic registration
|
||||
/// </summary>
|
||||
public bool? DynamicRegistration { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities.TextDocument
|
||||
{
|
||||
/// <summary>
|
||||
/// Capabilities specific to textDocument/codeAction requests
|
||||
/// </summary>
|
||||
public class CodeActionCapabilities : DynamicRegistrationCapability
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities.TextDocument
|
||||
{
|
||||
/// <summary>
|
||||
/// Capabilities specific to textDocument/codeLens requests
|
||||
/// </summary>
|
||||
public class CodeLensCapabilities : DynamicRegistrationCapability
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities.TextDocument
|
||||
{
|
||||
/// <summary>
|
||||
/// Capabilities specific to the colorProviderw
|
||||
/// </summary>
|
||||
public class ColorProviderCapabilities : DynamicRegistrationCapability
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using Microsoft.SqlTools.DataProtocol.Contracts.Common;
|
||||
|
||||
namespace Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities.TextDocument
|
||||
{
|
||||
/// <summary>
|
||||
/// Capabilities specific to the 'textDocument/completion' request
|
||||
/// </summary>
|
||||
public class CompletionCapabilities : DynamicRegistrationCapability
|
||||
{
|
||||
/// <summary>
|
||||
/// Client supports these CompletionItem specific capabilities. Can be <c>null</c>
|
||||
/// </summary>
|
||||
public CompletionItemCapabilities CompletionItem { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Client supports these CompletionItemKinds as responses to completion requests
|
||||
/// </summary>
|
||||
public CompletionItemKindCapabiltities CompletionItemKind { get; set; }
|
||||
}
|
||||
|
||||
public class CompletionItemCapabilities
|
||||
{
|
||||
/// <summary>
|
||||
/// Whether client supports snippet formats as completion results
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// A snippet can define tab stops and placeholders with <c>$1</c>, <c>$2</c> and
|
||||
/// <c>${3:foo}</c>. <c>$0</c> defines the final tab stop, it defaults to the end of
|
||||
/// the snippet. Placeholders with equal identifiers are linked, that is typing in one
|
||||
/// will update others, too.
|
||||
/// </remarks>
|
||||
public bool? SnippetSupport { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether client supports commit characters on a completion item
|
||||
/// </summary>
|
||||
public bool? CommitCharactersSpport { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Client supports these content formats for the documentation property. The order
|
||||
/// describes the preferred format of the client. May be <c>null</c>
|
||||
/// </summary>
|
||||
public MarkupKind[] DocumentationFormat { get; set; }
|
||||
}
|
||||
|
||||
public class CompletionItemKindCapabiltities
|
||||
{
|
||||
/// <summary>
|
||||
/// Completion item kind values the client supports. When this property exists, the
|
||||
/// client also guarantees that it will handle values outside its set gracefully and
|
||||
/// falls back to a default value when unknown.
|
||||
///
|
||||
/// If this property is not present, the client only supports the completion item kinds
|
||||
/// from Text to Reference as defined in the initial version of the protocol.
|
||||
/// </summary>
|
||||
public CompletionItemKinds? ValueSet { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities.TextDocument
|
||||
{
|
||||
/// <summary>
|
||||
/// Capabilities specific to textDocument/definition requests
|
||||
/// </summary>
|
||||
public class DefinitionCapabilities : DynamicRegistrationCapability
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities.TextDocument
|
||||
{
|
||||
/// <summary>
|
||||
/// Capabilities specific to textDocument/documentHighlight requests
|
||||
/// </summary>
|
||||
public class DocumentHighlightCapabilities : DynamicRegistrationCapability
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities.TextDocument
|
||||
{
|
||||
/// <summary>
|
||||
/// Capabilities specific to textDocument/documentLink requests
|
||||
/// </summary>
|
||||
public class DocumentLinkCapabilities : DynamicRegistrationCapability
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using Microsoft.SqlTools.DataProtocol.Contracts.Common;
|
||||
|
||||
namespace Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities.TextDocument
|
||||
{
|
||||
/// <summary>
|
||||
/// Capabilities specific to textDocument/documentSymbol requests
|
||||
/// </summary>
|
||||
public class DocumentSymbolCapabilities : DynamicRegistrationCapability
|
||||
{
|
||||
/// <summary>
|
||||
/// Specific capabilities for the SymbolKind
|
||||
/// </summary>
|
||||
public DocumentSymbolKindCapabilities SymbolKind { get; set; }
|
||||
}
|
||||
|
||||
public class DocumentSymbolKindCapabilities
|
||||
{
|
||||
/// <summary>
|
||||
/// Symbol kind values the client supports. When this property exists, the client also
|
||||
/// guarantees that it will handle values outside its set gracefully and falls back to a
|
||||
/// default value when unknown.
|
||||
///
|
||||
/// If this property is not present, the client only supports the symbol kinds from File to
|
||||
/// Array as defined in the initial version of the protocol
|
||||
/// </summary>
|
||||
public SymbolKinds? ValueSet { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//w
|
||||
|
||||
namespace Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities.TextDocument
|
||||
{
|
||||
/// <summary>
|
||||
/// Capabilities specific to textDocument/formatting requests
|
||||
/// </summary>
|
||||
public class FormattingCapabilities : DynamicRegistrationCapability
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using Microsoft.SqlTools.DataProtocol.Contracts.Common;
|
||||
|
||||
namespace Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities.TextDocument
|
||||
{
|
||||
/// <summary>
|
||||
/// Capabilities specific to textDocument/hover requests
|
||||
/// </summary>
|
||||
public class HoverCapabilities : DynamicRegistrationCapability
|
||||
{
|
||||
/// <summary>
|
||||
/// Client supports these content formats for the content property. The order describes
|
||||
/// the preferred format of the client.
|
||||
/// </summary>
|
||||
public MarkupKind[] ContentFormat { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities.TextDocument
|
||||
{
|
||||
/// <summary>
|
||||
/// Capabilities specific to textDocument/implementation requests
|
||||
/// </summary>
|
||||
public class ImplementationCapabilities : DynamicRegistrationCapability
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities.TextDocument
|
||||
{
|
||||
/// <summary>
|
||||
/// Capabilities specific to textDocument/onTypeFormatting requests
|
||||
/// </summary>
|
||||
public class OnTypeFormattingCapabilities : DynamicRegistrationCapability
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
namespace Microsoft.SqlTools.DataProtocol.Contracts.ClientCapabilities.TextDocument
|
||||
{
|
||||
/// <summary>
|
||||
/// Capabilities specific to textDocument/publishDiagnostics requests
|
||||
/// </summary>
|
||||
public class PublishDignosticsCapabilities
|
||||
{
|
||||
/// <summary>
|
||||
/// Whether the client accepts diagnostics with related information
|
||||
/// </summary>
|
||||
public bool? RelatedInformation { get; set; }
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user