Funzionalità di accesso compatibili (AccessToSQL)Incompatible Access Features (AccessToSQL)

Non tutte le funzionalità di database di Access sono compatibili con SQL ServerSQL Server.Not all Access database features are compatible with SQL ServerSQL Server. Ad esempio, SQL ServerSQL Server e dispone di accesso diversi set di parole chiave riservate.For example, SQL ServerSQL Server and Access have different sets of reserved keywords. Problemi come questi può impedire la migrazione ha esito positivo a SQL ServerSQL Server.Issues such as these can prevent a successful migration to SQL ServerSQL Server. Utilizzare la tabella seguente per informazioni sui problemi di migrazione possibili e le operazioni su di essi.Use the following table to learn about possible migration issues and what you can do about them.

Le impostazioni o funzionalità che potrebbero influire sulla migrazione di databaseDatabase Settings or Features That Might Affect Migration

Impostazione del Database o una funzionalità di accessoAccess Database Setting or Feature Problema di migrazioneMigration Issue
Accedere a tabelle non dispone di indici univoci.Access tables do not have unique indexes. Se viene eseguita la migrazione di una tabella che non dispone di un indice univoco a SQL ServerSQL Server, non è possibile modificare la tabella dopo la migrazione.If a table that does not have a unique index is migrated to SQL ServerSQL Server, you cannot modify the table after migration. Questo può causare problemi di compatibilità.This can lead to application compatibility problems.

Quando si convertono gli oggetti di database di Access, nella finestra di Output verranno elencate tutte le tabelle di accesso che non contengono indici univoci.When you convert Access database objects, the Output window will list any Access tables that do not have unique indexes.

È possibile configurare l'accesso per aggiungere una chiave primaria di SQL ServerSQL Server tabella durante la conversione.You can configure Access to add a primary key on the SQL ServerSQL Server table during conversion. Per ulteriori informazioni, vedere le impostazioni del progetto (conversione).For more information, see Project Settings (Conversion).
Accedere a tabelle con colonne di replica.Access tables have replication columns. Se viene eseguita la migrazione di una tabella di accesso che include le colonne di sistema di replica per SQL ServerSQL Server, la funzionalità di replica Jet verrà interrotta dopo la migrazione.If an Access table that includes replication system columns is migrated to SQL ServerSQL Server, Jet replication functionality will be broken after migration.

Dopo la migrazione, è consigliabile utilizzare SQL ServerSQL Server per mantenere sincronizzate le copie dei database di replica.After migration, consider using SQL ServerSQL Server replication to maintain synchronized copies of your databases.
Accedere a tabelle con indici univoci contenga valori null.Access tables that have unique indexes contain multiple null values. Accedere a tabelle con indici univoci con più valori null non può essere trasferite a SQL ServerSQL Server, perché in SQL ServerSQL Server, gli indici univoci non consentire più valori null.Access tables that have unique indexes with multiple null values cannot be transferred to SQL ServerSQL Server, because in SQL ServerSQL Server, unique indexes disallow multiple nulls. La migrazione avrà esito negativo per queste tabelle.Migration will fail for these tables.

SSMA contrassegnerà questo problema nei report di valutazione.SSMA will flag this issue in assessment reports. Per creare una relazione di valutazione, vedere valutare gli oggetti di Database di Access per la conversione.To create an assessment report, see Assessing Access Database Objects for Conversion.

Se questo problema, è necessario assicurarsi che la chiave primaria non dispone di valori null duplicati.If this problem exists, you must make sure that the primary key does not have duplicate null values. In alternativa, è necessario rimuovere la chiave primaria o indici univoci che contengono più valori null.Or, you must remove the primary key or unique indexes that contain multiple null values.
Accedere a tabelle contenga valori di data che sono fuori il SQL ServerSQL Server intervallo.Access tables contain date values that are out of the SQL ServerSQL Server range. Il SQL ServerSQL Server datetime tipo accetta date nell'intervallo tra 1 gennaio 1753 al 31 dicembre 9999 solo.The SQL ServerSQL Server datetime type accepts dates in the range of 1 Jan 1753 to 31 Dec 9999 only. Accesso accetta le date dell'intervallo pari a 100 1 gennaio al 31 dicembre 9999.Access accepts dates in the range of 1 Jan 100 to 31 Dec 9999.

SSMA contrassegnerà questo problema nei report di valutazione.SSMA will flag this issue in assessment reports. Per creare una relazione di valutazione, vedere valutare gli oggetti di Database di Access per la conversione.To create an assessment report, see Assessing Access Database Objects for Conversion.

È possibile configurare la modalità di risoluzione delle date SSMA che sono fuori il SQL ServerSQL Server intervallo.You can configure how SSMA resolves dates that are out of the SQL ServerSQL Server range. Per ulteriori informazioni, vedere le impostazioni del progetto (migrazione).For more information, see Project Settings (Migration).
Lunghezze di indice in Access superano i 900 byte.Index lengths in Access exceed 900 bytes. SQL ServerSQL Servergli indici hanno un limite di 900 byte per le dimensioni totali delle colonne chiave indice. indexes have a 900-byte limit for the total size of index key columns. Se le tabelle di Access utilizzano gli indici di dimensioni maggiori, SSMA verrà visualizzato un avviso.If your Access tables use larger indexes, SSMA will display a warning.

Se si continua con la migrazione dei dati, la migrazione potrebbe non riuscire.If you continue with data migration, the migration might fail.
I nomi degli oggetti di accesso sono SQL ServerSQL Server parole chiave, o contenere i caratteri speciali.Access object names are SQL ServerSQL Server keywords, or contain special characters. Accesso e SQL ServerSQL Server offrono diversi set di caratteri speciali e parole chiave riservate.Access and SQL ServerSQL Server have different sets of reserved keywords and special characters. SQL ServerSQL Serveraccetta gli oggetti vengono denominati utilizzando SQL ServerSQL Server parole chiave o che contengono caratteri speciali, se si utilizzano identificatori tra parentesi o tra virgolette, ad esempio "select" o [selezionare]. p. will accept objects that are named by using SQL ServerSQL Server keywords or that contain special characters if you use bracketed or quoted identifiers, such as "select" or [select].p. Per ulteriori informazioni, vedere "Identificatori delimitati (motore di Database)" in SQL ServerSQL Server documentazione in linea.For more information, see "Delimited Identifiers (Database Engine)" in SQL ServerSQL Server Books Online.

Nota: per utilizzare le virgolette per delimitare gli identificatori, SET QUOTED_IDENTIFIER deve essere impostata su ON.NOTE: To use quotation marks to delimit identifiers, SET QUOTED_IDENTIFIER must be ON.

Ad esempio, CREATE TABLE [schema](c1 [FOR]) è un'istruzione valida, anche se schema e per sono parole chiave riservate.For example, CREATE TABLE [schema](c1 [FOR]) is a valid statement, even though schema and FOR are reserved keywords. Inoltre, CREATE TABLE [xxx*yyy](c1 x&y) è un'istruzione valida, anche se il nome di tabella e colonna contengono caratteri speciali * e & .Also, CREATE TABLE [xxx*yyy](c1 x&y) is a valid statement, even though the table and column name contain the special characters * and &.

Tutte le query che fanno riferimento a oggetti è necessario utilizzare anche i nomi con parentesi quadre o virgolette.All queries that reference those objects must also use the names with brackets or quotation marks. Ad esempio, la query SELECT * FROM schema avrà esito negativo.For example, the query SELECT * FROM schema will fail. La query corretta è: SELECT * FROM [schema].The correct query is: SELECT * FROM [schema].

Durante la conversione di oggetti di database di Access, il riquadro di Output verrà elencate tutte le tabelle di accesso che utilizzano parole chiave o caratteri speciali.When you convert Access database objects, the Output pane will list any Access tables that use keywords or special characters. È possibile modificare le tabelle di Access, quindi rimuovere e aggiungere il database. oppure è possibile modificare le query che fanno riferimento a oggetti in modo che le query utilizzano le parentesi quadre o virgolette doppie per delimitare gli identificatori.You can modify the tables in Access, and then remove and add the database again; or you can modify queries that reference those objects so that the queries use brackets or quotation marks to delimit identifiers. Se non si modificano le query, le applicazioni Access potrebbero restituire errori o altri problemi.If you do not modify your queries, your Access applications might return errors or have other problems.
Le dimensioni dei campi diversi in relazioni di chiave esterna o chiave primarie.Field sizes differ in primary key/foreign key relationships. SQL ServerSQL Servernon supporta la funzionalità di Jet di collegamento tra le colonne con tipi di dati diversi o dimensioni con vincoli di chiave esterna. does not support the Jet functionality of linking columns that have different data types or sizes with foreign key constraints.

Quando si convertono gli oggetti di database di Access, nella finestra di Output verranno elencate qualsiasi primari/chiavi vincoli di chiave esterna che non verranno convertiti in SQL ServerSQL Server.When you convert Access database objects, the Output window will list any primary key/foreign key constraints that will not be converted to SQL ServerSQL Server. È possibile modificare i tipi di dati e le dimensioni per le colonne di accesso in modo che corrispondano e quindi rimuovere e aggiungere nuovamente il database di Access.You can alter data types and sizes on Access columns so that they match, and then remove and re-add the Access database. In alternativa, è possibile migrare i dati anche se questi vincoli non verrà creati SQL ServerSQL Server.Or, you can migrate data although these constraints will not be created in SQL ServerSQL Server.
Le tabelle cui viene fatto riferimento nelle relazioni di accesso hanno una chiave primaria né un indice univoco.Referenced tables in Access relationships have neither a primary key nor a unique index. Accesso accetta una relazione tra tabelle in cui la tabella di riferimento non dispone di una chiave primaria o un indice univoco.Access accepts relationship between tables where the referenced table does not have a primary key or a unique index. Tuttavia, questo non è supportato da SQL ServerSQL Server.However, this is not supported by SQL ServerSQL Server.

Quando si convertono gli oggetti di database di Access, nella finestra di Output verranno elencate tutte le tabelle con relazioni ma alcuna chiave primaria o un indice univoco.When you convert Access database objects, the Output window will list any tables that have relationships but no primary key or unique index. È possibile modificare le tabelle per aggiungere le chiavi primarie o gli indici univoci, quindi rimuovere e aggiungere nuovamente il database di Access.You can alter the tables to add primary keys or unique indexes, and then remove and re-add the Access database. In alternativa, è possibile migrare i dati anche se la relazione tra le tabelle verranno interrotta.Or, you can migrate data although the relationship between the tables will be broken.
Accedere a tabelle con colonne di un collegamento ipertestuale.Access tables have hyperlink columns. SQL ServerSQL Servernon supporta collegamento ipertestuale colonne. does not support hyperlink columns. Al contrario, le colonne vengono considerate come colonne di tipo memo accesso.Instead, the columns are treated like Access memo columns. Per impostazione predefinita, queste colonne verranno convertite in nvarchar (max) colonne SQL ServerSQL Server.By default, these columns will be converted to nvarchar(max) columns in SQL ServerSQL Server. È possibile personalizzare il mapping.You can customize the mapping. Per ulteriori informazioni, vedere Mapping tipi di origine e destinazione dati.For more information, see Mapping Source and Target Data Types.
Espressioni di regole di convalida o predefinito contengono funzioni di accesso che non possono essere convertite in SQL ServerSQL Server o SQL Azure.Default or validation rule expressions contain Access functions that cannot be converted to SQL ServerSQL Server or SQL Azure. Espressioni di accesso predefinite o regole di convalida potrebbero includere funzioni di sistema di accesso o funzioni definite dall'utente che non sono mappati a SQL ServerSQL Server o SQL Azure.Access default expressions or validation rules might include Access system functions or user-defined functions that do not map to SQL ServerSQL Server or SQL Azure. Utilizzo di funzioni che non sono mappati a SQL ServerSQL Server o SQL Azure sarà possibile caricare le espressioni predefinite o regole di convalida in SQL ServerSQL Server o SQL Azure.Using functions that do not map to SQL ServerSQL Server or SQL Azure will prevent you from loading the default expressions or validation rules into SQL ServerSQL Server or SQL Azure.

Vedere ancheSee Also

Preparazione dei database di Access per la migrazionePreparing Access Databases for Migration
Migrazione di database di Access a SQL ServerMigrating Access Databases to SQL Server