# Connect Soda to MS SQL Server

> For Soda to run quality scans on your data, you must configure it to connect to your data source.\
> To learn how to set up Soda and configure it to connect to your data sources, see [Get started](https://docs.soda.io/soda-documentation/soda-v3/quick-start-sip/setup-guide).

## Connection configuration reference

Install package: `soda-sqlserver`

```yaml
data_source my_datasource_name:
  type: sqlserver
  host: host
  port: '1433'
  username: simple
  password: simple_pass
  database: database
  schema: dbo
  trusted_connection: false
  encrypt: false
  trust_server_certificate: false
  driver: ODBC Driver 18 for SQL Server
  scope: DW
  connection_parameters:
    multi_subnet_failover: true
```

| Property                   | Required | Notes                                                                                                                                                                                                                                                  |
| -------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| type                       | required | Identify the type of data source for Soda.                                                                                                                                                                                                             |
| host                       | required | Provide a host identifier.                                                                                                                                                                                                                             |
| port                       | optional | Provide a port identifier. You can remove the `port` config setting entirely. Default: `1433`.                                                                                                                                                         |
| username                   | required | Use system variables to retrieve this value securely.                                                                                                                                                                                                  |
| password                   | required | Use system variables to retrieve this value securely.                                                                                                                                                                                                  |
| database                   | required | Provide an identifier for your database.                                                                                                                                                                                                               |
| schema                     | required | Provide an identifier for the schema in which your dataset exists.                                                                                                                                                                                     |
| trusted\_connection        | optional | Indicate connection trustworthiness by providing a boolean value: `true` or `false`. The default value is `false`. Set to `true` if you are using Active Directory authentication.                                                                     |
| encrypt                    | optional | Indicate the encryption status by providing a boolean value: `true` or `false`. The default value is `false`.                                                                                                                                          |
| trust\_server\_certificate | optional | Specifies whether encryption occurs if there is no verifiable server certificate. Providing a boolean value: `true` or `false`. The default value is `false`.                                                                                          |
| driver                     | optional | Use this config setting to specify the ODBC driver version you use. For example, `SQL Server Native Client 11.0` or `ODBC Driver 18 for SQL Server`.                                                                                                   |
| scope                      | optional | Access token scope.                                                                                                                                                                                                                                    |
| `multi_subnet_failover`    | optional | Enable MultiSubnetFailover; see [MS documentation](https://learn.microsoft.com/en-us/dotnet/framework/data/adonet/sql/sqlclient-support-for-high-availability-disaster-recovery#connecting-with-multisubnetfailover).                                  |
| authentication             | optional | Authentication method to use. Supported values: `sql`, `activedirectoryinteractive`, `activedirectorypassword`, `activedirectoryserviceprincipal`, `activedirectory`. The default value is `sql` which uses `username` and `password` to authenticate. |

## Test the data source connection <a href="#test-the-data-source-connection" id="test-the-data-source-connection"></a>

To confirm that you have correctly configured the connection details for the data source(s) in your configuration YAML file, use the `test-connection` command. If you wish, add a `-V` option to the command to return results in verbose mode in the CLI.

```sh
soda test-connection -d my_datasource -c configuration.yml -V
```

## Supported data types

| Category | Data type                                                                              |
| -------- | -------------------------------------------------------------------------------------- |
| text     | CHAR, VARCHAR, TEXT, NCHAR, NVARCHAR, BINARY                                           |
| number   | BIG INT, NUMERIC, BIT, SMALLINT, DECIMAL, SMALLMONEY, INT, TINYINT, MONEY, FLOAT, REAL |
| time     | DATE, TIME, DATETIME, DATETIMEOFFSET                                                   |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.soda.io/soda-documentation/soda-v3/data-source-reference/connect-mssql.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
