Creazione di query di accodamento (Visual Database Tools)Create Insert Results Queries (Visual Database Tools)

Le query di accodamento consentono di copiare righe da una tabella a un'altra oppure all'interno di una stessa tabella.You can copy rows from one table to another or within a table using an Insert Results query. Ad esempio, in una tabella titles è possibile utilizzare una query di accodamento per copiare le informazioni riguardanti tutti i titoli di un editore in una seconda tabella da presentare all'editore stesso.For example, in a titles table, you can use an Insert Results query to copy information about all the titles for one publisher to a second table that you can make available to that publisher. La query di accodamento è analoga alla query di creazione tabella, con la differenza che le righe vengono copiate in una tabella esistente.An Insert Results query is similar to Make Table Queries, but copies rows into an existing table.

Suggerimento

Per copiare righe da una tabella a un'altra, è anche possibile utilizzare i comandi Copia e Incolla.You can also copy rows from one table to another using cut and paste. Creare una query per ogni tabella ed eseguire le query,Create a query for each table and run the queries. quindi copiare le righe desiderate da una griglia di risultati all'altra.Copy the rows you want from one results grid to the other.

Durante la creazione di una query di accodamento è necessario specificare:When you create an Insert Results query, you specify:

  • La tabella di database in cui copiare le righe, ossia la tabella di destinazione.The database table to copy rows to (the destination table).

  • Le tabelle da cui copiare le righe, ossia le tabelle di origine.The table or tables to copy rows from (the source table). Le tabelle di origine entrano a far parte di una sottoquery.The source table or tables become part of a subquery. Se la copia viene effettuata all'interno della stessa tabella, la tabella di origine e quella di destinazione coincideranno.If you are copying within a table, the source table is the same as the destination table.

  • Le colonne della tabella di origine di cui si desidera copiare il contenuto.The columns in the source table whose contents you want to copy.

  • Le colonne della tabella di destinazione in cui si desidera copiare i dati.The target columns in the destination table to copy the data to.

  • Le condizioni di ricerca per la definizione delle righe da copiare.Search conditions to define the rows you want to copy.

  • Il criterio di ordinamento, se si desidera copiare le righe in un particolare ordine.Sort order, if you want to copy the rows in a particular order.

  • Le opzioni di raggruppamento, se si desidera copiare solo le informazioni di riepilogo.Group By options, if you want to copy only summary information.

L'esempio di query fornito di seguito consente di copiare le informazioni sui titoli dalla tabella titles a una tabella di archivio denominata archivetitles:For example, the following query copies title information from the titles table to an archive table called archivetitles. La query copia il contenuto di quattro colonne per tutti i titoli appartenenti all'editore specificato:The query copies the contents of four columns for all titles belonging to a particular publisher:

INSERT INTO archivetitles   
   (title_id, title, type, pub_id)  
SELECT title_id, title, type, pub_id  
FROM titles  
WHERE (pub_id = '0766')  
Nota

Per inserire i valori in una nuova riga, utilizzare una query di accodamento valori.To insert values into a new row, use an Insert Values query.

È possibile copiare il contenuto delle colonne selezionate o di tutte le colonne in una riga.You can copy the contents of selected columns or of all columns in a row. In entrambi i casi, è necessario che i dati copiati siano compatibili con le colonne delle righe di destinazione.In either case, the data you are copying must be compatible with the columns in the rows you are copying to. Ad esempio, per copiare il contenuto di una colonna quale price, è necessario che la colonna di destinazione consenta l'inserimento di dati numerici con decimali.For example, if you copy the contents of a column such as price, the column in the row you are copying to must accept numeric data with decimal places. Se si copia una riga intera, è necessario che la tabella di destinazione disponga di colonne compatibili nella stessa posizione fisica rispetto alla colonna di origine.If you are copying an entire row, the destination table must have compatible columns in the same physical position as the source table.

Quando si crea una query di accodamento, nel riquadro Criteri vengono visualizzate le opzioni disponibili per la copia di dati.When you create an Insert Results query, the Criteria pane changes to reflect options available for copying data. Verrà inoltre aggiunta una colonna Accodamento dove specificare le colonne in cui copiare i dati.An Append column is added to allow you to specify the columns into which data should be copied.

Attenzione

Una volta eseguita, la query di accodamento non potrà essere annullata.You cannot undo the action of executing an Insert Results query. È dunque opportuno eseguire una copia di backup dei dati prima di eseguire la query.As a precaution, back up your data before executing the query.

Per creare una query di accodamentoTo create an Insert Results query

  1. Creare una nuova query e aggiungere la tabella da cui si desidera copiare le righe, ovvero la tabella di origine.Create a new query and add the table from which you want to copy rows (the source table). Se si sta effettuando la copia di righe all'interno di una stessa tabella, sarà possibile aggiungere la tabella di origine come tabella di destinazione.If you are copying rows within a table, you can add the source table as a destination table.

  2. Scegliere Modifica tipo dal menu Progettazione query, quindi Accodamento.From the Query Designer menu, point to Change Type, and then click Insert Results.

  3. Nella finestra di dialogo Scegliere la tabella di destinazione per Accodamentoselezionare la tabella in cui copiare le righe (la tabella di destinazione).In the Choose Target Table for Insert Results Dialog Box, select the table to copy rows to (the destination table).

    Nota

    In Progettazione query e Progettazione viste non è possibile stabilire in anticipo le tabelle e le viste da aggiornare.The Query and View Designer cannot determine in advance which tables and views you can update. Pertanto nell'elenco Nome tabella della finestra di dialogo Choose Table for Insert From Query (Scegli tabella per query di inserimento) sono visualizzate tutte le tabelle e le viste disponibili nella connessione dati su cui si esegue la query, anche quelle che non sono valide come tabelle o viste di destinazione.Therefore, the Table Name list in the Choose Table for Insert From Query dialog box shows all available tables and views in the data connection you are querying, even those that you might not be able to copy rows to.

  4. Nel rettangolo che rappresenta la tabella o l'oggetto con valori di tabella scegliere i nomi delle colonne di cui si desidera copiare il contenuto.In the rectangle representing the table or table-valued object, choose the names of the columns whose contents you want to copy. Per copiare righe intere, scegliere * (Tutte le colonne).To copy entire rows, choose * (All Columns).

    Le colonne selezionate verranno aggiunte alla colonna Colonna del riquadro Criteri.The Query and View Designer adds the columns you choose to the Column column of the Criteriapane.

  5. Nella colonna Aggiungi del riquadro Criteri selezionare una colonna di destinazione nella tabella di destinazione per ogni colonna da copiare.In the Append column of the Criteria pane, select a target column in the destination table for each column you are copying. Scegliere tablename.* per copiare righe intere.Choose tablename.* if you are copying entire rows. I tipi di dati nelle colonne della tabella di destinazione devono essere uguali o compatibili con quelli delle colonne nella tabella di origine.The columns in the destination table must have the same (or compatible) data types as the columns in the source table.

  6. Se si desidera copiare le righe in un particolare ordine, specificare il criterio di ordinamento.If you want to copy rows in a particular order, specify a sort order. Per informazioni dettagliate, vedere Ordinare e raggruppare i risultati delle query (Visual Database Tools).For details, see Sort and Group Query Results (Visual Database Tools).

  7. Specificare le righe da copiare immettendo le condizioni di ricerca nella colonna Filtro.Specify the rows to copy by entering search conditions in the Filter column. Per informazioni dettagliate, vedere Specifica di criteri di ricerca (Visual Database Tools).For details, see Specify Search Criteria (Visual Database Tools).

    Se non si specifica alcuna condizione di ricerca, tutte le righe della tabella di origine verranno copiate nella tabella di destinazione.If you do not specify a search condition, all rows from the source table will be copied to the destination table.

    Nota

    Quando nel riquadro Criteri si aggiunge una colonna da includere nella ricerca, tale colonna verrà aggiunta anche all'elenco delle colonne da copiare.When you add a column to search to the Criteria pane, the Query and View Designer also adds it to the list of columns to copy. Se si desidera utilizzare una colonna per la ricerca senza copiarla, deselezionare la casella di controllo accanto al nome della colonna nel rettangolo che rappresenta la tabella o l'oggetto con valori di tabella.If you want to use a column for searching but not copy it, clear the check box next to the column name in the rectangle representing the table or table-valued object.

  8. Se si desidera copiare le informazioni di riepilogo, specificare le opzioni di raggruppamento.If you want to copy summary information, specify Group By options. Per informazioni dettagliate, vedere Riepilogo dei risultati di query (Visual Database Tools).For details, see Summarize Query Results (Visual Database Tools).

Quando si esegue una query di accodamento, non viene restituito alcun risultato nel riquadro Risultati.When you execute an Insert Results query, no results are reported in the Results Pane. Viene invece visualizzato un messaggio che indica il numero di righe copiate.Instead, a message appears indicating how many rows were copied.

Vedere ancheSee Also

Tipi di query (Visual Database Tools)Types of Queries (Visual Database Tools)
Procedure per la progettazione di query e viste (Visual Database Tools)Design Queries and Views How-to Topics (Visual Database Tools)