Eseguire query sulle colonne usando Always Encrypted con Azure Data StudioQuery columns using Always Encrypted with Azure Data Studio

Si applica a:Applies to: sìSQL ServerSQL Server (tutte le versioni supportate) yesSQL ServerSQL Server (all supported versions) Sìdatabase SQL di AzureAzure SQL DatabaseYesdatabase SQL di AzureAzure SQL DatabaseSi applica a:Applies to: sìSQL ServerSQL Server (tutte le versioni supportate) yesSQL ServerSQL Server (all supported versions) Sìdatabase SQL di AzureAzure SQL DatabaseYesdatabase SQL di AzureAzure SQL Database

Questo articolo descrive come eseguire query sulle colonne crittografate con Always Encrypted usando Azure Data Studio.This article describes how to query columns, encrypted with Always Encrypted using Azure Data Studio. Con Azure Data Studio è possibile:With Azure Data Studio, you can:

  • Recuperare i valori del testo crittografato archiviati nelle colonne crittografate.Retrieve ciphertext values stored in encrypted columns.
  • Recuperare i valori del testo non crittografato archiviati nelle colonne crittografate.Retrieve plaintext values stored in encrypted columns.
  • Inviare i valori del testo non crittografato destinati alle colonne crittografate (ad esempio, nelle istruzioni INSERT o UPDATE e come parametri di ricerca delle clausole WHERE nelle istruzioni SELECT).Send plaintext values targeting encrypted columns (for example, in INSERT or UPDATE statements and as a lookup parameter of the WHERE clauses in SELECT statements).

Recupero dei valori del testo crittografato archiviati nelle colonne crittografateRetrieving ciphertext values stored in encrypted columns

Questa sezione descrive come recuperare i dati archiviati come testo crittografato nelle colonne crittografate.This section describes how to retrieve data stored in encrypted columns as ciphertext.

PassaggiSteps

  1. Assicurarsi di aver disabilitato Always Encrypted per la connessione di database per la finestra di query, da cui si eseguirà una query SELECT che recupera valori in testo crittografato.Make sure you have disabled Always Encrypted for the database connection for the query window, from which you will run a SELECT query retrieving ciphertext values. Vedere la sezione Abilitazione e disabilitazione di Always Encrypted per una connessione di database più avanti in questo articolo.See Enabling and disabling Always Encrypted for a database connection below.
  2. Eseguire la query SELECT.Run your SELECT query. I dati recuperati dalle colonne crittografate verranno restituiti come valori binari (crittografati).Any data retrieved from encrypted columns will be returned as binary (encrypted) values.

EsempioExample

Supponendo che SSN è una colonna crittografata nella tabella Patients , la query riportata di seguito recupererà i valori binari del testo crittografato, se Always Encrypted è disabilitato per la connessione di database.Assuming SSN is an encrypted column in the Patients table, the query shown below will retrieve binary ciphertext values, if Always Encrypted is disabled for the database connection.

Screenshot della query SELECT * FROM [dbo].[Patients] e i risultati della query visualizzati come valori di testo crittografato binario.

Recupero dei valori del testo non crittografato archiviati nelle colonne crittografateRetrieving plaintext values stored in encrypted columns

Questa sezione descrive come recuperare i dati archiviati come testo crittografato nelle colonne crittografate.This section describes how to retrieve data stored in encrypted columns as ciphertext.

PrerequisitiPrerequisites

  • Azure Data Studio versione 17.1 o successiva.Azure Data Studio version 17.1 or later.
  • È necessario avere accesso alle chiavi master di colonna e ai metadati relativi alle chiavi che proteggono le colonne su cui si esegue la query.You need to have access to the column master key(s) and the metadata about the key(s) protecting the columns that you are running your query against. Per informazioni dettagliate, vedere Autorizzazioni per l'esecuzione di query su colonne crittografate più avanti.For details, see Permissions for querying encrypted columns below.
  • Le chiavi master della colonna devono essere archiviate in Azure Key Vault o nell'archivio certificati Windows.Your column master key(s) must be stored in Azure Key Vault or Windows Certificate Store. Azure Data Studio non supporta altri archivi di chiavi.Azure Data Studio does not support other key stores.

PassaggiSteps

  1. Abilitare Always Encrypted per la connessione di database per la finestra di query, da cui si eseguirà una query SELECT che recupera e decrittografa i dati.Enable Always Encrypted for the database connection for the query window, from which you will run a SELECT query retrieving and decrypting your data. Questo indicherà al provider di dati Microsoft .NET Framework per SQL Server, usato da Azure Data Studio, di decrittografare le colonne crittografate nel set di risultati della query.This will instruct the Microsoft .NET Data Provider for SQL Server (used by Azure Data Studio) to decrypt the encrypted columns in the query result set. Vedere la sezione Abilitazione e disabilitazione di Always Encrypted per una connessione di database più avanti in questo articolo.See Enabling and disabling Always Encrypted for a database connection below.
  2. Eseguire la query SELECT.Run your SELECT query. Tutti i dati recuperati dalle colonne crittografate verranno restituiti come valori in testo non crittografato dei tipi di dati originali.Any data retrieved from encrypted columns will be returned as plaintext values of the original data types.

EsempioExample

Supponendo che SSN sia una colonna crittografata nella tabella Patients, la query visualizzata di seguito restituirà i valori del testo non crittografato se Always Encrypted è abilitato per la connessione di database e se si ha accesso alla chiave master della colonna configurata per la colonna SSN.Assuming SSN is an encrypted column in the Patients table, the query shown below will return plaintext values if Always Encrypted is enabled for the database connection, and if you have access to the column master key configured for the SSN column.

Screenshot della query SELECT * FROM [dbo].[Patients] e i risultati della query visualizzati come valori di testo normale.

Invio di valori del testo non crittografato destinati alle colonne crittografateSending plaintext values targeting encrypted columns

In questa sezione viene descritto come eseguire una query che invia valori destinati a una colonna crittografata.This section describes how to run a query that sends values that target an encrypted column. Ad esempio, una query che inserisce, aggiorna o filtra in base a un valore archiviato in una colonna crittografata:For example, a query that inserts, updates, or filters by a value stored in an encrypted column:

PrerequisitiPrerequisites

  • Azure Data Studio versione 18.1 o successiva.Azure Data Studio version 18.1 or later.
  • È necessario avere accesso alle chiavi master di colonna e ai metadati relativi alle chiavi che proteggono le colonne su cui si esegue la query.You need to have access to the column master key(s) and the metadata about the key(s) protecting the columns you are running your query against. Per informazioni dettagliate, vedere Autorizzazioni per l'esecuzione di query su colonne crittografate più avanti.For details, see Permissions for querying encrypted columns below.
  • Le chiavi master della colonna devono essere archiviate in Azure Key Vault o nell'archivio certificati Windows.Your column master key(s) must be stored in Azure Key Vault or Windows Certificate Store. Azure Data Studio non supporta altri archivi di chiavi.Azure Data Studio does not support other key stores.

PassaggiSteps

  1. Abilitare Always Encrypted per la connessione di database per la finestra di query, da cui si eseguirà una query SELECT che recupera e decrittografa i dati.Enable Always Encrypted for the database connection for the query window, from which you will run a SELECT query retrieving and decrypting your data. Questa operazione indicherà al provider di dati Microsoft .NET per SQL Server, usato da Azure Data Studio, di crittografare i parametri di query destinati alle colonne crittografate e decrittografare i risultati recuperati dalle colonne crittografate.This will instruct the Microsoft .NET Data Provider for SQL Server (used by Azure Data Studio) to encrypt query parameters targeting encrypted columns and decrypt the results retrieved from encrypted columns. Vedere la sezione Abilitazione e disabilitazione di Always Encrypted per una connessione di database più avanti in questo articolo.See Enabling and disabling Always Encrypted for a database connection below.
  2. Abilitare la parametrizzazione per Always Encrypted per la finestra di query.Enable Parameterization for Always Encrypted for the query window. Per informazioni dettagliate, vedere la sezione Parametrizzazione per Always Encrypted più avanti in questo articolo.See Parameterization for Always Encrypted below for details.
  3. Dichiarare una variabile Transact-SQL e inizializzarla con un valore da inviare al database mediante le operazioni di inserimento, aggiornamento o applicazione del filtro.Declare a Transact-SQL variable and initialize it with a value that you want to send (insert, update, or filter by) to the database.
  4. Eseguire la query inviando il valore della variabile Transact-SQL al database.Run your query sending the value of the Transact-SQL variable to the database. Azure Data Studio convertirà la variabile in un parametro di query e crittograferà il relativo valore prima di inviarlo al database.Azure Data Studio will convert the variable to a query parameter and it will encrypt its value before sending it to the database.

EsempioExample

Supponendo che SSN sia una colonna char(11) crittografata nella tabella Patients, lo script seguente tenterà di trovare una riga contenente '795-73-9838' nella colonna SSN.Assuming SSN is an encrypted char(11) column in the Patients table, the below script will attempt to find a row containing '795-73-9838' in the SSN column. I risultati vengono restituiti se Always Encrypted è abilitato per la connessione al database, la parametrizzazione per Always Encrypted è abilitata per la finestra di query ed è possibile accedere alla chiave master della colonna configurata per la colonna SSN.The results are returned if Always Encrypted is enabled for the database connection, Parameterization for Always Encrypted is enabled for the query window, and you have access to the column master key configured for the SSN column.

Screenshot della query DECLARE @SSN char(11) = '795-73-9838' SELECT * FROM [dbo].[Patients] WHERE [SSN] = @SSN e dei risultati della query.

Autorizzazioni per l'esecuzione di query su colonne crittografatePermissions for querying encrypted columns

Per eseguire query sulle colonne crittografate, comprese query che recuperano dati in testo crittografato, sono necessarie le autorizzazioni VIEW ANY COLUMN MASTER KEY DEFINITION e VIEW ANY COLUMN ENCRYPTION KEY DEFINITION nel database.To run any queries against encrypted columns, including queries that retrieve data in ciphertext, you need the VIEW ANY COLUMN MASTER KEY DEFINITION and VIEW ANY COLUMN ENCRYPTION KEY DEFINITION permissions in the database.

Oltre a queste autorizzazioni, per decrittografare i risultati delle query o per crittografare i parametri di query (generati dalla parametrizzazione delle variabili Transact-SQL), è necessario anche accedere alla chiave master della colonna proteggendo le colonne di destinazione:In addition to the above permissions, to decrypt any query results or to encrypt any query parameters (produced by parameterizing Transact-SQL variables), you also need access to the column master key protecting the target columns:

  • Archivio certificati: computer locale: è necessario avere accesso in Lettura al certificato usato come chiave master della colonna o essere l'amministratore del computer.Certificate Store - Local computer: You must have Read access to the certificate that is used as a column master key, or be the administrator on the computer.
  • Azure Key Vault: sono necessarie le autorizzazioni get, unwrapKey e verify per l'insieme di credenziali contenente la chiave master della colonna.Azure Key Vault: You need the get, unwrapKey, and verify permissions on the key vault containing the column master key.

Per altre informazioni, vedere Creare e archiviare chiavi master della colonna (Always Encrypted).For more information, see Create and Store Column Master Keys (Always Encrypted).

Abilitazione e disabilitazione di Always Encrypted per una connessione di databaseEnabling and disabling Always Encrypted for a database connection

Quando ci si connette a un database in Azure Data Studio, è possibile abilitare o disabilitare Always Encrypted per la connessione di database.When you connect to a database in Azure Data Studio, you can either enable or disable Always Encrypted for the database connection. Per impostazione predefinita, Always Encrypted è disabilitato.By default, Always Encrypted is disabled.

Quando si abilita Always Encrypted per una connessione di database, si indica al provider di dati Microsoft .NET per SQL Server, usato da Azure Data Studio, di provare a eseguire le operazioni seguenti in modo trasparente:Enabling Always Encrypted for a database connection instructs the Microsoft .NET Data Provider for SQL Server, used by Azure Data Studio, to attempt to transparently:

  • Decrittografare tutti i valori recuperati dalle colonne crittografate e restituiti nei risultati della query.Decrypt any values retrieved from encrypted columns and returned in query results.
  • Crittografare i valori delle variabili Transact-SQL con parametri destinati alle colonne di database crittografate.Encrypt the values of the parameterized Transact-SQL variables that target encrypted database columns.

Se non si abilita Always Encrypted per una connessione, il provider di dati Microsoft .NET per SQL Server non proverà a crittografare i parametri di query o a decrittografare i risultati.If you don't enable Always Encrypted for a connection, the Microsoft .NET Data Provider for SQL Server won't try to encrypt query parameters or decrypt results.

È possibile abilitare o disabilitare Always Encrypted quando ci si connette a un database.You can enable or disable Always Encrypted when you connect to a database. Per informazioni generali su come connettersi a un database, vedere:For general information on how to connect to a database see:

Per abilitare o disabilitare Always Encrypted:To enable (disable) Always Encrypted:

  1. Nella finestra di dialogo Connessione fare clic su Avanzate... .In the Connection dialog, click Advanced....
  2. Per abilitare Always Encrypted per la connessione, impostare il campo Always Encrypted su Attivato.To enable Always Encrypted for the connection, set the Always Encrypted field to Enabled. Per disabilitare Always Encrypted, lasciare vuoto il valore del campo Always Encrypted o impostarlo su Disattivato.To disable Always Encrypted, either leave the value of the Always Encrypted field blank or set it to Disabled.
  3. Fare clic su OK per chiudere le Proprietà avanzate.Click OK to close Advanced Properties.

Breve video che illustra i passaggi per abilitare Always Encrypted per la connessione.

Per eseguire istruzioni che sfruttano un'enclave sicura sul lato server quando si usa Always Encrypted con enclave sicure, è necessario specificare un protocollo di attestazione e un URL di attestazione dell'enclave, oltre ad abilitare Always Encrypted per la connessione.To run statements that leverage a server-side secure enclave when you're using Always Encrypted with secure enclaves, you need to specify an enclave attestation protocol and an enclave attestation URL, in addition to enabling Always Encrypted for the connection. Per informazioni dettagliate, vedere Prerequisiti per l'esecuzione di istruzioni T-SQL usando le enclave in Azure Data Studio.For detailed information, see Prerequisites for running T-SQL statements using enclaves in Azure Data Studio.

Suggerimento

Per abilitare e disabilitare Always Encrypted per una finestra di query, fare clic su Disconnetti e quindi fare clic su Connetti e completare i passaggi precedenti per riconnettersi al database con i valori desiderati nel campo Always Encrypted.To toggle between Always Encrypted being enabled and disabled for an existing query window, click Disconnect and then click Connnect and complete the above steps to reconnect to your database with the desired values of the Always Encrypted field.

Nota

Il pulsante Cambia connessione in una finestra di query attualmente non supporta l'abilitazione e la disabilitazione di Always Encrypted.The Change Connection button in a query window does not currently support toggling between Always Encrypted being enabled and disabled.

Parametrizzazione per Always EncryptedParameterization for Always Encrypted

La parametrizzazione per Always Encrypted è una funzionalità di Azure Data Studio 18.1 e versioni successive che converte automaticamente le variabili Transact-SQL in parametri di query (istanze della classe SqlParameter).Parameterization for Always Encrypted is a feature in Azure Data Studio 18.1 and later that automatically converts Transact-SQL variables into query parameters (instances of SqlParameter Class). Ciò consente al provider di dati Microsoft .NET per SQL Server di rilevare i dati destinati alle colonne crittografate e di crittografare tali dati prima di inviarli al database.This allows the underlying Microsoft .NET Data Provider for SQL Server to detect data targeting encrypted columns, and to encrypt such data before sending it to the database.

Senza la parametrizzazione, il provider di dati Microsoft .NET per SQL Server passa ogni istruzione creata nella finestra di query come query senza parametri.Without parameterization, the Microsoft .NET Data Provider for SQL Server passes each statement you author in the query window as a non-parameterized query. Se la query contiene valori letterali o variabili Transact-SQL destinate a colonne crittografate, il provider di dati .NET Framework per SQL Server non riuscirà a rilevarle e crittografarle prima di inviare la query al database.If the query contains literals or Transact-SQL variables that target encrypted columns, the .NET Framework Data Provider for SQL Server won't be able to detect and encrypt them before sending the query to the database. Di conseguenza, la query avrà esito negativo a causa di mancata corrispondenza tra i tipi, ovvero tra la variabile Transact-SQL letterale non crittografata e la colonna crittografata.As a result, the query will fail due to type mismatch (between the plaintext literal Transact-SQL variable and the encrypted column). Ad esempio, la query seguente avrà esito negativo senza parametrizzazione, supponendo che la colonna SSN sia crittografata.For example, the following query will fail without parameterization, assuming the SSN column is encrypted.

DECLARE @SSN CHAR(11) = '795-73-9838'
SELECT * FROM [dbo].[Patients]
WHERE [SSN] = @SSN

Abilitazione e disabilitazione della funzionalità Parametrizzazione per Always EncryptedEnabling and disabling Parameterization for Always Encrypted

La funzionalità Parametrizzazione per Always Encrypted è disabilitata per impostazione predefinita.Parameterization for Always Encrypted is disabled by default.

Per abilitare e disabilitare la parametrizzazione per Always Encrypted:To enable/disable Parameterization for Always Encrypted:

  1. Selezionare File > Preferenze > Impostazioni (Code > Preferences > Settings (Codice - Preferenze - Impostazioni) su Mac).Select File > Preferences > Settings (Code > Preferences > Settings on Mac).
  2. Passare a Dati > Microsoft SQL Server.Navigate to Data > Microsoft SQL Server.
  3. Selezionare o deselezionare Abilita parametrizzazione per Always Encrypted.Select or unselect Enable Parameterization for Always Encrypted.
  4. Chiudere la finestra Impostazioni.Close the Settings window.

Breve video che illustra come abilitare o disabilitare la parametrizzazione per Always Encrypted.

Nota

La parametrizzazione per Always Encrypted funziona solo in una query che usa connessioni di database con l'opzione Always Encrypted abilitata (vedere Abilitazione e disabilitazione di Always Encrypted per una connessione di database).Parameterization for Always Encrypted works only in a query that use database connections with Always Encrypted enabled (see Enabling and disabling Always Encrypted for a database connection). Non verrà parametrizzata alcuna variabile Transact-SQL se la finestra di query usa una connessione di database senza l'opzione Always Encrypted abilitata.No Transact-SQL variables will be parameterized if the query window uses a database connection without Always Encrypted enabled.

Funzionamento di Parametrizzazione per Always EncryptedHow Parameterization for Always Encrypted works

Se nella finestra di query sono abilitati sia la parametrizzazione per Always Encrypted che Always Encrypted, Azure Data Studio proverà a parametrizzare le variabili Transact-SQL che soddisfano i prerequisiti seguenti:If both Parameterization for Always Encrypted and Always Encrypted are enabled for a query window, Azure Data Studio will attempt parameterize Transact-SQL variables that meet the following pre-requisite conditions:

  • Le variabili devono essere dichiarate e inizializzate nella stessa istruzione (inizializzazione inline).Are declared and initialized in the same statement (inline initialization). Le variabili dichiarate con istruzioni SET separate non verranno parametrizzate.Variables declared using separate SET statements won't be parameterized.
  • Le variabili devono essere inizializzate con un singolo valore letterale.Are initialized using a single literal. Le variabili inizializzate con espressioni che comprendono operatori o funzioni non verranno parametrizzate.Variables initialized using expressions including any operators or functions won't be parameterized.

Di seguito sono riportati alcuni esempi di variabili che verranno parametrizzate da Azure Data Studio.Below are examples of variables Azure Data Studio will parameterize.

DECLARE @SSN char(11) = '795-73-9838';
   
DECLARE @BirthDate date = '19990104';
DECLARE @Salary money = $30000;

Questi sono esempi di variabili che invece non verranno parametrizzate da Azure Data Studio:Here are a few examples of variables Azure Data Studio won't attempt to parameterize:

DECLARE @Name nvarchar(50); --Initialization separate from declaration
SET @Name = 'Abel';

DECLARE @StartDate date = GETDATE(); -- a function used instead of a literal

DECLARE @NewSalary money = @Salary * 1.1; -- an expression used instead of a literal

Per far sì che la parametrizzazione riesca:For an attempted parameterization to succeed:

  • Il tipo del valore letterale usato per l'inizializzazione della variabile da parametrizzare deve corrispondere al tipo nella dichiarazione di variabile.The type of the literal used for the initialization of the variable to be parametrized must match the type in the variable declaration.
  • Se il tipo dichiarato della variabile è un tipo data o ora, la variabile deve essere inizializzata usando una stringa con uno dei formati conformi a ISO 8601 seguenti.If the declared type of the variable is a date type or a time type, the variable must be initialized using a string using one of the following ISO 8601-compliant formats.

Di seguito sono riportati alcuni esempi di dichiarazioni di variabili Transact-SQL che causano errori di parametrizzazione:Here are examples of Transact-SQL variable declarations that will result in parameterization errors:

DECLARE @BirthDate date = '01/04/1999' -- unsupported date format   
   
DECLARE @Number int = 1.1 -- the type of the literal does not match the type of the variable   

Azure Data Studio usa Intellisense per indicare le variabili che possono essere parametrizzate correttamente e quelle la cui parametrizzazione non riuscirà e il motivo.Azure Data Studio uses Intellisense to inform you which variables can be successfully parameterized and which parameterization attempts fail (and why).

Una dichiarazione di una variabile che può essere parametrizzata correttamente è contrassegnata con un messaggio informativo nella finestra di query.A declaration of a variable that can be successfully parameterized is marked with an info message underline in the query window. Se si passa il mouse su un'istruzione di dichiarazione contrassegnata con una sottolineatura informativa, verrà visualizzato il messaggio contenente i risultati del processo di parametrizzazione, inclusi i valori delle proprietà chiave dell'oggetto della classe SqlParameter risultante. Viene eseguito il mapping della variabile a: SqlDbType, Size, Precision, Scale, SqlValue).If you hover on a declaration statement that got marked with an info message underline, you'll see the message containing the results of the parameterization process, including the values of the key properties of the resulting SqlParameter Class object (the variable is mapped to: SqlDbType, Size, Precision, Scale, SqlValue). È anche possibile visualizzare l'elenco completo di tutte le variabili che sono state parametrizzate correttamente nella scheda Problemi.You can also see the complete list of all variables that have been successfully parameterized in the Problems view. Per aprire la vista Problemi, selezionare Visualizza > Problemi.To open the Problems view, select View > Problems.

Se Azure Data Studio ha provato a parametrizzare una variabile, ma la parametrizzazione non è riuscita, la dichiarazione della variabile verrà contrassegnata con una sottolineatura di errore.If Azure Data Studio has attempted to parameterize a variable, but the parameterization has failed, the declaration of the variable will be marked with an error underline. Se si passa il mouse sull'istruzione di dichiarazione contrassegnata con una sottolineatura di errore, verranno visualizzati i risultati relativi all'errore.If you hover on the declaration statement that has been marked with an error underline, you'll get the results about the error. È anche possibile visualizzare l'elenco completo degli errori di parametrizzazione per tutte le variabili nella vista Problemi.You can also see the complete list of parameterization errors for all variables in the Problems view.

Nota

Poiché Always Encrypted supporta un subset limitato di conversioni di tipi, in molti casi è necessario che il tipo di dati di una variabile Transact-SQL sia lo stesso tipo della colonna di database di destinazione a cui la variabile è destinata.As Always Encrypted supports a limited subset of type conversions, in many cases it is required that the data type of a Transact-SQL variable is the same as the type of the target database column it targets. Ad esempio, supponendo che il tipo della colonna SSN nella tabella Patients sia char(11), la query sottostante avrà esito negativo perché il tipo della variabile @SSN, ovvero nchar(11), non corrisponde al tipo della colonna.For example, assuming the type of the SSN column in the Patients table is char(11), the below query will fail, as the type of the @SSN variable, which is nchar(11), does not match the type of the column.

DECLARE @SSN nchar(11) = '795-73-9838'
SELECT * FROM [dbo].[Patients]
WHERE [SSN] = @SSN;
Msg 402, Level 16, State 2, Line 5   
The data types char(11) encrypted with (encryption_type = 'DETERMINISTIC', 
encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'CEK_Auto1', 
column_encryption_key_database_name = 'Clinic') collation_name = 'Latin1_General_BIN2' 
and nchar(11) encrypted with (encryption_type = 'DETERMINISTIC', 
encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'CEK_Auto1', 
column_encryption_key_database_name = 'Clinic') are incompatible in the equal to operator.

Nota

Senza la parametrizzazione, l'intera query, incluse le conversioni dei tipi, viene elaborata all'interno di SQL Server o del database SQL di Azure.Without parameterization, the entire query, including type conversions is processed inside SQL Server/Azure SQL Database. Con la parametrizzazione abilitata, alcune conversioni di tipi vengono eseguite dal provider di dati Microsoft .NET per SQL Server in Azure Data Studio.With parameterization enabled, some type conversions are performed by Microsoft .NET Data Provider for SQL Server inside Azure Data Studio. A causa delle differenze tra il sistema dei tipi Microsoft .NET e il sistema dei tipi SQL Server (ad esempio diversa precisione di alcuni tipi come ad esempio float), una query eseguita con la parametrizzazione abilitata può produrre risultati diversi rispetto alla query eseguita senza la parametrizzazione abilitata.Due to differences between the Microsoft .NET type system and the SQL Server type system (for example, different precision of some types, such as float), a query executed with parameterization enabled can produce different results than the query executed without parameterization enabled.

Passaggi successiviNext Steps

Vedere ancheSee Also