SqlServerVersion

Struct SqlServerVersion 

Source
pub struct SqlServerVersion {
    pub major: u8,
    pub minor: u8,
    pub build: u16,
    pub sub_build: u16,
}
Expand description

SQL Server product version.

Represents the SQL Server product version (e.g., 11.0.5058 for SQL Server 2012). This is distinct from the TDS protocol version - during PreLogin, the server sends its product version, not the TDS version it will use.

§Wire Format

Per MS-TDS 2.2.6.4, the VERSION option in PreLogin response contains:

  • UL_VERSION (4 bytes): Major.Minor.Build in format [major][minor][build_hi][build_lo]
  • US_SUBBUILD (2 bytes): Sub-build number

§SQL Server Version Mapping

MajorSQL Server Version
8SQL Server 2000
9SQL Server 2005
10SQL Server 2008/2008 R2
11SQL Server 2012
12SQL Server 2014
13SQL Server 2016
14SQL Server 2017
15SQL Server 2019
16SQL Server 2022

Fields§

§major: u8

Major version (e.g., 11 for SQL Server 2012)

§minor: u8

Minor version

§build: u16

Build number

§sub_build: u16

Sub-build number

Implementations§

Source§

impl SqlServerVersion

Source

pub const fn from_prelogin_bytes(version_bytes: [u8; 4], sub_build: u16) -> Self

Create a new SQL Server version from raw PreLogin bytes.

The PreLogin VERSION field contains 6 bytes:

  • Bytes 0-3: UL_VERSION (major, minor, build_hi, build_lo) in big-endian
  • Bytes 4-5: US_SUBBUILD in little-endian
Source

pub const fn from_raw(raw: u32, sub_build: u16) -> Self

Create from a raw u32 value (as decoded from PreLogin).

Source

pub const fn product_name(&self) -> &'static str

Get the SQL Server product name for this version.

Source

pub const fn max_tds_version(&self) -> TdsVersion

Get the corresponding TDS version for this SQL Server version.

This returns the maximum TDS version supported by this SQL Server version.

Trait Implementations§

Source§

impl Clone for SqlServerVersion

Source§

fn clone(&self) -> SqlServerVersion

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SqlServerVersion

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SqlServerVersion

Source§

fn default() -> SqlServerVersion

Returns the “default value” for a type. Read more
Source§

impl Display for SqlServerVersion

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for SqlServerVersion

Source§

fn eq(&self, other: &SqlServerVersion) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for SqlServerVersion

Source§

impl Eq for SqlServerVersion

Source§

impl StructuralPartialEq for SqlServerVersion

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.