sqlx-sqlserver
Independent Microsoft SQL Server driver crate for SQLx.
This crate is a standalone top-level crate. It depends only on crates published
to crates.io and is not wired into the sqlx facade crate, so examples use
sqlx-core directly.
Minimal Query
[dependencies]
sqlx-sqlserver = "0.0.2"
sqlx-core = "=0.9.0"
tokio = { version = "1", features = ["macros", "rt"] }
use sqlx_core::connection::{ConnectOptions, Connection};
use sqlx_core::row::Row;
use sqlx_sqlserver::MssqlConnectOptions;
#[tokio::main(flavor = "current_thread")]
async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
let mut conn = "mssql://sa:Password123!@localhost:1433/master?encrypt=mandatory&trust_server_certificate=true"
.parse::<MssqlConnectOptions>()?
.connect()
.await?;
let row = sqlx_core::query::query("SELECT 1")
.fetch_one(&mut conn)
.await?;
let value: i32 = row.try_get(0)?;
println!("{value}");
conn.close().await?;
Ok(())
}
Any Driver
Install this crate explicitly before opening SQL Server URLs through SQLx
AnyConnection:
use sqlx_core::connection::Connection;
sqlx_core::any::driver::install_drivers(&[sqlx_sqlserver::any::DRIVER])?;
let mut conn = sqlx_core::any::AnyConnection::connect(
"mssql://sa:Password123!@localhost:1433/master?encrypt=mandatory&trust_server_certificate=true",
)
.await?;
For local development, run fast tests with ./scripts/ci.sh. Run e2e tests
with MSSQL_DATABASE_URL=... ./scripts/test-mssql.sh.