mirror of
https://github.com/Microsoft/sql-server-samples.git
synced 2025-12-08 14:58:54 +00:00
59 lines
1.4 KiB
Go
59 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
_ "github.com/denisenkom/go-mssqldb"
|
|
"database/sql"
|
|
"context"
|
|
"log"
|
|
"fmt"
|
|
)
|
|
|
|
// Replace with your own connection parameters
|
|
var server = "your_server.database.windows.net"
|
|
var user = "your_user"
|
|
var password = "your_password"
|
|
var database = "your_database"
|
|
|
|
var db *sql.DB
|
|
|
|
func main() {
|
|
var err error
|
|
|
|
// Create connection string
|
|
connString := fmt.Sprintf("server=%s;user id=%s;password=%s;database=%s",
|
|
server, user, password, database)
|
|
|
|
// Create connection pool
|
|
db, err = sql.Open("sqlserver", connString)
|
|
if err != nil {
|
|
log.Fatal("Error creating connection pool: " + err.Error())
|
|
}
|
|
log.Printf("Connected!\n")
|
|
|
|
// Close the database connection pool after program executes
|
|
defer db.Close()
|
|
|
|
SelectVersion()
|
|
}
|
|
|
|
// Gets and prints SQL Server version
|
|
func SelectVersion(){
|
|
// Use background context
|
|
ctx := context.Background()
|
|
|
|
// Ping database to see if it's still alive.
|
|
// Important for handling network issues and long queries.
|
|
err := db.PingContext(ctx)
|
|
if err != nil {
|
|
log.Fatal("Error pinging database: " + err.Error())
|
|
}
|
|
|
|
var result string
|
|
|
|
// Run query and scan for result
|
|
err = db.QueryRowContext(ctx, "SELECT @@version").coScan(&result)
|
|
if err != nil {
|
|
log.Fatal("Scan failed:", err.Error())
|
|
}
|
|
fmt.Printf("%s\n", result)
|
|
} |