---
title: Write to SQL Server
description: Use sql.to() with the sqlserver driver to write data to SQL Server.
url: https://docs.influxdata.com/flux/v0/write-data/sql/sql-server/
estimated_tokens: 2122
product: Flux
version: v0
---

# Write to SQL Server

To write data to [Microsoft SQL Server](https://www.microsoft.com/sql-server/) with Flux:

1. Import the [`sql` package](/flux/v0/stdlib/sql/).
    
2. Pipe-forward data into [`sql.to()`](/flux/v0/stdlib/sql/to/) and provide the following parameters:
    
    -   **driverName**: sqlserver
    -   **dataSourceName**: *See [data source name](#sql-server-data-source-name)*
    -   **table**: Table to write to
    -   **batchSize**: Number of parameters or columns that can be queued within each call to `Exec` (default is `10000`)

```js
import "sql"

data
    |> sql.to(
        driverName: "sqlserver",
        dataSourceName: "sqlserver://user:password@localhost:1433?database=examplebdb",
        table: "Example.Table",
    )
```

## SQL Server data source name

The `sqlserver` driver uses the following DSN syntaxes (also known as a **connection string**):

```
sqlserver://username:password@localhost:1433?database=examplebdb
server=localhost;user id=username;database=examplebdb;
server=localhost;user id=username;database=examplebdb;azure auth=ENV
server=localhost;user id=username;database=examplebdbr;azure tenant id=77e7d537;azure client id=58879ce8;azure client secret=0143356789
```

## SQL Server ADO authentication

Use one of the following methods to provide SQL Server authentication credentials as [ActiveX Data Objects (ADO)](https://docs.microsoft.com/en-us/sql/ado/guide/ado-introduction?view=sql-server-ver15) DSN parameters:

-   [Retrieve authentication credentials from environment variables](#retrieve-authentication-credentials-from-environment-variables)
-   [Retrieve authentication credentials from a file](#retrieve-authentication-credentials-from-a-file)
-   [Specify authentication credentials in the DSN](#specify-authentication-credentials-in-the-dsn)
-   [Use a Managed identity in an Azure VM](#use-a-managed-identity-in-an-azure-vm)

### Retrieve authentication credentials from environment variables

```
azure auth=ENV
```

### Retrieve authentication credentials from a file

**InfluxDB Cloud** and **InfluxDB OSS** ***do not*** have access to the underlying file system and do not support reading credentials from a file. To retrieve SQL Server credentials from a file, execute the query in the [Flux REPL](/influxdb/v2/tools/flux-repl/) on your local machine.

```powershel
azure auth=C:\secure\azure.auth
```

### Specify authentication credentials in the DSN

```powershell
# Example of providing tenant ID, client ID, and client secret token
azure tenant id=77...;azure client id=58...;azure client secret=0cf123..

# Example of providing tenant ID, client ID, certificate path and certificate password
azure tenant id=77...;azure client id=58...;azure certificate path=C:\secure\...;azure certificate password=xY...

# Example of providing tenant ID, client ID, and Azure username and password
azure tenant id=77...;azure client id=58...;azure username=some@myorg;azure password=a1...
```

### Use a managed identity in an Azure VM

*For information about managed identities, see [Microsoft managed identities](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview).*

```
azure auth=MSI
```

## Flux to SQL Server data type conversion

`sql.to()` converts Flux data types to SQL Server data types.

| Flux data type | SQL Server data type |
| --- | --- |
| float | FLOAT |
| int | BIGINT |
| uint | BIGINT |
| string | VARCHAR(MAX |
| bool | BIT |
| time | DATETIMEOFFSET |

#### Related

-   [sql.to() function](/flux/v0/stdlib/sql/to/)
