Import-NAVData
Imports data from a file that has been exported from a Business Central database.
Syntax
Import-NAVData
[-DatabaseServer <String>]
[-DatabaseName <String>]
[-DatabaseCredentials <PSCredential>]
[-ApplicationDatabaseServer <String>]
[-ApplicationDatabaseName <String>]
[-ApplicationDatabaseCredentials <PSCredential>]
[-FilePath] <String>
[-IncludeApplication]
[-IncludeApplicationData]
[-IncludeGlobalData]
[-IncludeSystemTablesWithCompanyRelation]
[-CompanyName <String[]>]
[-CommitPerTable]
[-SqlBulkImportBatchSize <Int32>]
[-SqlCommandTimeout <TimeSpan>]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Import-NAVData
[-ServerInstance] <String>
[[-Tenant] <TenantId>]
[-FilePath] <String>
[-IncludeApplication]
[-IncludeApplicationData]
[-IncludeGlobalData]
[-IncludeSystemTablesWithCompanyRelation]
[-AllCompanies]
[-CommitPerTable]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Import-NAVData
[-ServerInstance] <String>
[[-Tenant] <TenantId>]
[-FilePath] <String>
[-IncludeApplication]
[-IncludeApplicationData]
[-IncludeGlobalData]
[-IncludeSystemTablesWithCompanyRelation]
[-CompanyName <String[]>]
[-CommitPerTable]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Import-NAVData
[-DatabaseServer <String>]
[-DatabaseName <String>]
[-DatabaseCredentials <PSCredential>]
[-ApplicationDatabaseServer <String>]
[-ApplicationDatabaseName <String>]
[-ApplicationDatabaseCredentials <PSCredential>]
[-FilePath] <String>
[-IncludeApplication]
[-IncludeApplicationData]
[-IncludeGlobalData]
[-IncludeSystemTablesWithCompanyRelation]
[-AllCompanies]
[-CommitPerTable]
[-SqlBulkImportBatchSize <Int32>]
[-SqlCommandTimeout <TimeSpan>]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Use the Import-NAVData cmdlet to import data into a Business Central database from a file. You can choose to import all data in the file, and you can choose to import only company-specific data, global data, application data, or application objects. You can use the Import-NAVData cmdlet in a classic single-tenant deployment of Business Central, and you can use it in multitenant deployments.
You can only import an application into an empty database. If you import application data but not the application, you cannot access the database from Business Central. Similarly, if you import global data into a database that does not contain a company, you cannot open Business Central.
Also, we recommend that you do not import an application into a database that users are accessing. A new application often defines a new database schema that changes the structure of the business data.
The cmdlet takes different parameter sets depending on how you connect to the database that you want to import data into. You can access the database through the Business Central Server instance, or you can access the database directly.
You can use the Import-NAVData cmdlet to transfer data between installations. We recommend that you use SQL Server management tools to back up and restore databases. To export data to a file, use the Export-NAVData cmdlet.
Examples
EXAMPLE 1
Import-NAVData -ServerInstance BC -CompanyName "CRONUS International Ltd.", "My Company" -IncludeGlobalData -FilePath C:\file\CompaniesAndGlobalData.navdata
This example imports the two named companies into the database that is mounted against the specified Business Central Server instance in a single-tenant deployment of Business Central.
EXAMPLE 2
Import-NAVData -DatabaseServer 'MyServer' -DatabaseName 'Tenant 1 Database' -ApplicationDatabaseServer 'MyServer' -ApplicationDatabase 'Business Central app' -CompanyName "CRONUS International Ltd." -FilePath C:\file\Company.navdata
This example imports a named company into the specified tenant database that uses the specified application database in a multitenant deployment of Business Central.
EXAMPLE 3
Import-NAVData -DatabaseServer 'MyServer' -DatabaseName 'Tenant 1 Database' DatabaseCredentials (Get-Credential)-ApplicationDatabaseServer 'MyServer' -ApplicationDatabase 'Business Central app' -CompanyName "CRONUS International Ltd." ApplicationDatabaseCredentials (Get-Credential) -FilePath C:\file\Company.navdata
This example imports the named into the specified tenant database that uses the specified application database in a multitenant deployment of Business Central. The example configures SQL Server Authentication on the Business Central Server instance for accessing the tenant and application databases.
Parameters
-AllCompanies
Specifies if you want to import all companies from the specified file.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ApplicationDatabaseCredentials
Specifies the user name and password of an SQL Server Authentication login account that provides access to the Business Central application database in SQL Server. You use this parameter to access the database by using SQL Server Authentication. If you want to use Windows Authentication, then you can omit this parameter. The login account must be a member of the db_owner role on the database.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ApplicationDatabaseName
Specifies the name of the Business Central database that contains the application tables in the multitenant deployment. Even if you are not importing application data to the application database, you must specify this parameter in a multitenant deployment.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ApplicationDatabaseServer
Specifies the name of the computer on which the SQL Server instance for the Business Central database that contains the application tables is installed in the multitenant deployment. Even if you are not importing application data to the application database, you must specify this parameter in a multitenant deployment.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-CommitPerTable
Specifies the data changes are committed per table.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-CompanyName
Specifies the name of the company or the companies that you want to import. If the company does not exist in the file, the operation fails.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
Prompts you for confirmation before executing the command.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DatabaseCredentials
Specifies the user name and password for an SQL Server Authentication login account that provides access to the database or tenant database (in a multitenant deployment) in SQL Server. You use this parameter to access the database by using SQL Server Authentication. If you want to use Windows Authentication, then you can omit this parameter. The login account must be a member of the db_owner role on the database.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DatabaseName
Specifies the name of the Business Central database, such as 'Demo Database NAV (11-0)', into which you want to import the data from the file. In a multitenant deployment, this is the name of the tenant database, and you must also specify the tenant ID in the Tenant parameter.
Type: | String |
Aliases: | TenantDatabaseName |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DatabaseServer
Specifies the name of the computer on which the SQL Server instance for the Business Central database is installed.
Type: | String |
Aliases: | TenantDatabaseServer |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Specifies the name and location of the file that you want to import data from. The file must be a .navdata file that has been exported from Business Central. If you use parameter sets that include -ServerInstance, the user account for the Business Central Server instance must have read access to the location that is specified by the -FilePath parameter. If you use parameter sets that include -DatabaseServer, you must have read access to the location that is specified by the -FilePath parameter.
The file can't be located in the user profile folder on your computer, like C:\Users\[user_name], or any of it's sub-folders, like Documents and Desktop. If so, you'll get the error: import-navdata : The specified file does not exist at the specified location:
.
Type: | String |
Aliases: | FileName |
Position: | 2 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Force
Forces the command to run without asking for user confirmation.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IncludeApplication
Specifies that you want to include application objects in the import. If you do not set the parameter, application objects are not included in the import. You can only import an application into an empty database. You can only set this parameter when you access the Business Central database directly through the DatabaseServer and DatabaseName parameters.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-IncludeApplicationData
Specifies that you want to include application data in the import. If you do not set the parameter, application data is not included in the import. Application data is tables that describe the application as opposed to being business data.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-IncludeGlobalData
Specifies that you want to include global, non-company specific data in the import. If you do not set the parameter, global data is not included in the import.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-IncludeSystemTablesWithCompanyRelation
Specifies that you want to include data from system tables related to the companies being imported. This is a subset of the data that can be imported using the -IncludeGlobalData parameter
Type: | SwitchParameter |
Position: | Named |
Default value: | True |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ServerInstance
Specifies the name of a Business Central Server instance, for example, BC or myinstance. You can specify either the full name of an instance, such as MicrosoftDynamicsNavServer$myinstance or the short name such as myinstance.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SqlBulkImportBatchSize
Specifies how many SQL memory chunks a data import must be distributed across. A small number increases the number of network transfers and decreases performance, but also lowers the amount of memory that the server instance consumes. If the database is on SQL Server 2016 or later, a low value of Bulk batch size can lead to large data files. To not use batching, specify 0.
Type: | Int32 |
Position: | Named |
Default value: | 448 |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SqlCommandTimeout
Specifies the maximum amount of time allowed for any SQL operation that is part of the import. The value has the format hh:mm:ss, and the default is 00:30:00. If the time is exceeded, an error occurs and the import will fail. This parameter applies only when importing directly to the database without specifying a server instance. It has the same effect as the server instance's SqlCommandTimeout setting when importing using a server instance.
Type: | TimeSpan |
Position: | Named |
Default value: | 00:00:00 |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Tenant
Specifies the ID of the tenant that the company is imported into, such as Tenant1. This parameter is required unless the specified service instance is not configured to run multiple tenants.
Type: | TenantId |
Aliases: | Id |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Describes what would happen if you executed the command without actually executing the command.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |