Documentation
¶
Overview ¶
Package gosmo provides a Go library that mimics Microsoft SQL Server Management Objects (SMO). It allows you to connect to SQL Server instances and programmatically manage databases, tables, schemas, users, logins, indexes, stored procedures, and more.
Index ¶
- func BuildBackupStatement(opts BackupOptions) (string, error)
- func BuildRestoreStatement(opts RestoreOptions) (string, error)
- func ColumnTypeString(col *Column) string
- func DatabasePermissionNames() []string
- func IsRetryable(err error) bool
- func ObjectPermissionNames() []string
- func ParseServerAddress(server string) (host, instance string, port int)
- func QuoteLiteral(s string) string
- func QuoteName(name string) string
- func SchemaPermissionNames() []string
- func ServerPermissionNames() []string
- func SliceRows(rows [][]any) iter.Seq2[[]any, error]
- type ActiveSession
- type AuthMethod
- type BackupAction
- type BackupFile
- type BackupHeader
- type BackupInfo
- type BackupOptions
- type BulkCopy
- type BulkOptions
- type Catalog
- type CatalogColumn
- type CatalogObject
- type CatalogObjectType
- type ChangeTrackingInfo
- type CheckConstraint
- type Column
- type ColumnDefault
- type ColumnDefinition
- type ColumnEncryptionKey
- type ColumnMasterKey
- type CompatibilityLevel
- type ConfigurationOption
- type ConnectionOptions
- type CreateDatabaseOptions
- type CreateIndexRequest
- type CreateJobRequest
- type CreateLoginOptions
- type CreatePartitionFunctionRequest
- type CreateSequenceRequest
- type CreateTableRequest
- type Credential
- type DataType
- type Database
- func (d *Database) ActualPlan(sql string) (*ExecutionPlan, error)
- func (d *Database) ActualPlanContext(ctx context.Context, sqlText string) (*ExecutionPlan, error)
- func (d *Database) AddExtendedProperty(name, value string, level ExtendedPropertyLevel) error
- func (d *Database) AddExtendedPropertyContext(ctx context.Context, name, value string, level ExtendedPropertyLevel) error
- func (d *Database) AddFile(spec DatabaseFileSpec) error
- func (d *Database) AddFileContext(ctx context.Context, spec DatabaseFileSpec) error
- func (d *Database) AddFileGroup(name string) error
- func (d *Database) AddFileGroupContext(ctx context.Context, name string) error
- func (d *Database) AddRoleMember(roleName, memberName string) error
- func (d *Database) AddRoleMemberContext(ctx context.Context, roleName, memberName string) error
- func (d *Database) AlterFile(name string, m FileModify) error
- func (d *Database) AlterFileContext(ctx context.Context, name string, m FileModify) error
- func (d *Database) BulkInsert(bc BulkCopy, rows iter.Seq2[[]any, error]) (int64, error)
- func (d *Database) BulkInsertContext(ctx context.Context, bc BulkCopy, rows iter.Seq2[[]any, error]) (int64, error)
- func (d *Database) Catalog() (*Catalog, error)
- func (d *Database) CatalogContext(ctx context.Context) (*Catalog, error)
- func (d *Database) ChangeTracking() (*ChangeTrackingInfo, error)
- func (d *Database) ChangeTrackingContext(ctx context.Context) (*ChangeTrackingInfo, error)
- func (d *Database) ClearQueryStore() error
- func (d *Database) ClearQueryStoreContext(ctx context.Context) error
- func (d *Database) Collation() string
- func (d *Database) ColumnEncryptionKeySeq() iter.Seq2[*ColumnEncryptionKey, error]
- func (d *Database) ColumnEncryptionKeys() ([]*ColumnEncryptionKey, error)
- func (d *Database) ColumnEncryptionKeysContext(ctx context.Context) ([]*ColumnEncryptionKey, error)
- func (d *Database) ColumnMasterKeySeq() iter.Seq2[*ColumnMasterKey, error]
- func (d *Database) ColumnMasterKeys() ([]*ColumnMasterKey, error)
- func (d *Database) ColumnMasterKeysContext(ctx context.Context) ([]*ColumnMasterKey, error)
- func (d *Database) CompatibilityLevel() CompatibilityLevel
- func (d *Database) CreateColumnMasterKey(name, keyStoreProvider, keyPath string, enclaveComputations bool) error
- func (d *Database) CreateColumnMasterKeyContext(ctx context.Context, name, keyStoreProvider, keyPath string, ...) error
- func (d *Database) CreateDate() time.Time
- func (d *Database) CreatePartitionFunction(req CreatePartitionFunctionRequest) error
- func (d *Database) CreatePartitionFunctionContext(ctx context.Context, req CreatePartitionFunctionRequest) error
- func (d *Database) CreatePartitionScheme(name, functionName string, fileGroups []string) error
- func (d *Database) CreatePartitionSchemeContext(ctx context.Context, name, functionName string, fileGroups []string) error
- func (d *Database) CreateSchema(name, owner string) error
- func (d *Database) CreateSchemaContext(ctx context.Context, name, owner string) error
- func (d *Database) CreateSequence(req CreateSequenceRequest) error
- func (d *Database) CreateSequenceContext(ctx context.Context, req CreateSequenceRequest) error
- func (d *Database) CreateStoredProcedure(schema, name, body string) error
- func (d *Database) CreateStoredProcedureContext(ctx context.Context, schema, name, body string) error
- func (d *Database) CreateSynonym(schema, name, baseObject string) error
- func (d *Database) CreateSynonymContext(ctx context.Context, schema, name, baseObject string) error
- func (d *Database) CreateTable(req CreateTableRequest) error
- func (d *Database) CreateTableContext(ctx context.Context, req CreateTableRequest) error
- func (d *Database) CreateUser(userName, loginName, defaultSchema string) error
- func (d *Database) CreateUserContext(ctx context.Context, userName, loginName, defaultSchema string) error
- func (d *Database) DatabaseExtendedProperties() ([]*ExtendedProperty, error)
- func (d *Database) DatabaseExtendedPropertiesContext(ctx context.Context) ([]*ExtendedProperty, error)
- func (d *Database) DatabaseExtendedPropertySeq() iter.Seq2[*ExtendedProperty, error]
- func (d *Database) DatabasePermissionSeq() iter.Seq2[*DatabasePermissionEntry, error]
- func (d *Database) DatabasePermissions() ([]*DatabasePermissionEntry, error)
- func (d *Database) DatabasePermissionsContext(ctx context.Context) ([]*DatabasePermissionEntry, error)
- func (d *Database) DatabaseRoles() ([]*DatabaseRole, error)
- func (d *Database) DatabaseRolesContext(ctx context.Context) ([]*DatabaseRole, error)
- func (d *Database) DatabaseScopedConfigs() ([]*DatabaseScopedConfig, error)
- func (d *Database) DatabaseScopedConfigsContext(ctx context.Context) ([]*DatabaseScopedConfig, error)
- func (d *Database) DenyDatabasePermission(permission, principal string) error
- func (d *Database) DenyDatabasePermissionContext(ctx context.Context, permission, principal string) error
- func (d *Database) DenyPermission(schema, name string, permission ObjectPermission, principal string) error
- func (d *Database) DenyPermissionContext(ctx context.Context, schema, name string, permission ObjectPermission, ...) error
- func (d *Database) DenySchemaPermission(schemaName string, permission ObjectPermission, principal string) error
- func (d *Database) DenySchemaPermissionContext(ctx context.Context, schemaName string, permission ObjectPermission, ...) error
- func (d *Database) Dependencies(schema, name string) ([]*Dependency, error)
- func (d *Database) DependenciesContext(ctx context.Context, schema, name string) ([]*Dependency, error)
- func (d *Database) Dependents(schema, name string) ([]*Dependency, error)
- func (d *Database) DependentsContext(ctx context.Context, schema, name string) ([]*Dependency, error)
- func (d *Database) DropExtendedProperty(name string, level ExtendedPropertyLevel) error
- func (d *Database) DropExtendedPropertyContext(ctx context.Context, name string, level ExtendedPropertyLevel) error
- func (d *Database) DropSchema(name string) error
- func (d *Database) DropSchemaContext(ctx context.Context, name string) error
- func (d *Database) DropStoredProcedure(schema, name string) error
- func (d *Database) DropStoredProcedureContext(ctx context.Context, schema, name string) error
- func (d *Database) DropTable(schema, name string, cascade bool) error
- func (d *Database) DropTableContext(ctx context.Context, schema, name string, cascade bool) error
- func (d *Database) DropUser(name string) error
- func (d *Database) DropUserContext(ctx context.Context, name string) error
- func (d *Database) EstimatedPlan(sql string) (*ExecutionPlan, error)
- func (d *Database) EstimatedPlanContext(ctx context.Context, sqlText string) (*ExecutionPlan, error)
- func (d *Database) ExecProc(schema, name string, params ...ProcParam) (ProcResult, error)
- func (d *Database) ExecProcContext(ctx context.Context, schema, name string, params ...ProcParam) (ProcResult, error)
- func (d *Database) ExtendedProperties(level ExtendedPropertyLevel) ([]*ExtendedProperty, error)
- func (d *Database) ExtendedPropertiesContext(ctx context.Context, level ExtendedPropertyLevel) ([]*ExtendedProperty, error)
- func (d *Database) FileGroups() ([]*FileGroup, error)
- func (d *Database) FileGroupsContext(ctx context.Context) ([]*FileGroup, error)
- func (d *Database) FileSeq() iter.Seq2[*DatabaseFileInfo, error]
- func (d *Database) Files() ([]*DatabaseFileInfo, error)
- func (d *Database) FilesContext(ctx context.Context) ([]*DatabaseFileInfo, error)
- func (d *Database) FlushQueryStore() error
- func (d *Database) FlushQueryStoreContext(ctx context.Context) error
- func (d *Database) GrantDatabasePermission(permission, principal string) error
- func (d *Database) GrantDatabasePermissionContext(ctx context.Context, permission, principal string) error
- func (d *Database) GrantPermission(schema, name string, permission ObjectPermission, principal string) error
- func (d *Database) GrantPermissionContext(ctx context.Context, schema, name string, permission ObjectPermission, ...) error
- func (d *Database) GrantSchemaPermission(schemaName string, permission ObjectPermission, principal string) error
- func (d *Database) GrantSchemaPermissionContext(ctx context.Context, schemaName string, permission ObjectPermission, ...) error
- func (d *Database) ID() int
- func (d *Database) IsReadOnly() bool
- func (d *Database) IsSystem() bool
- func (d *Database) Name() string
- func (d *Database) Options() (*DatabaseOptions, error)
- func (d *Database) OptionsContext(ctx context.Context) (*DatabaseOptions, error)
- func (d *Database) PartitionFunctionSeq() iter.Seq2[*PartitionFunction, error]
- func (d *Database) PartitionFunctions() ([]*PartitionFunction, error)
- func (d *Database) PartitionFunctionsContext(ctx context.Context) ([]*PartitionFunction, error)
- func (d *Database) PartitionSchemeSeq() iter.Seq2[*PartitionScheme, error]
- func (d *Database) PartitionSchemes() ([]*PartitionScheme, error)
- func (d *Database) PartitionSchemesContext(ctx context.Context) ([]*PartitionScheme, error)
- func (d *Database) Permissions(schema, name string) ([]*PermissionEntry, error)
- func (d *Database) PermissionsContext(ctx context.Context, schema, name string) ([]*PermissionEntry, error)
- func (d *Database) PermissionsForPrincipal(principal string) ([]*PrincipalSecurable, error)
- func (d *Database) PermissionsForPrincipalContext(ctx context.Context, principal string) ([]*PrincipalSecurable, error)
- func (d *Database) QueryStore() (*QueryStoreInfo, error)
- func (d *Database) QueryStoreContext(ctx context.Context) (*QueryStoreInfo, error)
- func (d *Database) RecoveryModel() RecoveryModel
- func (d *Database) RemoveFile(name string) error
- func (d *Database) RemoveFileContext(ctx context.Context, name string) error
- func (d *Database) RemoveFileGroup(name string) error
- func (d *Database) RemoveFileGroupContext(ctx context.Context, name string) error
- func (d *Database) RemoveRoleMember(roleName, memberName string) error
- func (d *Database) RemoveRoleMemberContext(ctx context.Context, roleName, memberName string) error
- func (d *Database) RenameTable(schema, oldName, newName string) error
- func (d *Database) RenameTableContext(ctx context.Context, schema, oldName, newName string) error
- func (d *Database) RevokeDatabasePermission(permission, principal string) error
- func (d *Database) RevokeDatabasePermissionContext(ctx context.Context, permission, principal string) error
- func (d *Database) RevokePermission(schema, name string, permission ObjectPermission, principal string) error
- func (d *Database) RevokePermissionContext(ctx context.Context, schema, name string, permission ObjectPermission, ...) error
- func (d *Database) RevokeSchemaPermission(schemaName string, permission ObjectPermission, principal string) error
- func (d *Database) RevokeSchemaPermissionContext(ctx context.Context, schemaName string, permission ObjectPermission, ...) error
- func (d *Database) RoleByName(name string) (*DatabaseRole, error)
- func (d *Database) RoleByNameContext(ctx context.Context, name string) (*DatabaseRole, error)
- func (d *Database) RoleMembers(roleName string) ([]*RoleMember, error)
- func (d *Database) RoleMembersContext(ctx context.Context, roleName string) ([]*RoleMember, error)
- func (d *Database) SchemaPermissions(schemaName string) ([]*PermissionEntry, error)
- func (d *Database) SchemaPermissionsContext(ctx context.Context, schemaName string) ([]*PermissionEntry, error)
- func (d *Database) SchemaSeq() iter.Seq2[*Schema, error]
- func (d *Database) Schemas() ([]*Schema, error)
- func (d *Database) SchemasContext(ctx context.Context) ([]*Schema, error)
- func (d *Database) Search(pattern string) ([]*SearchResult, error)
- func (d *Database) SearchContext(ctx context.Context, pattern string) ([]*SearchResult, error)
- func (d *Database) SecurityPolicies() ([]*SecurityPolicy, error)
- func (d *Database) SecurityPoliciesContext(ctx context.Context) ([]*SecurityPolicy, error)
- func (d *Database) SecurityPolicySeq() iter.Seq2[*SecurityPolicy, error]
- func (d *Database) SequenceSeq() iter.Seq2[*Sequence, error]
- func (d *Database) Sequences() ([]*Sequence, error)
- func (d *Database) SequencesContext(ctx context.Context) ([]*Sequence, error)
- func (d *Database) Server() *Server
- func (d *Database) SetChangeTracking(info ChangeTrackingInfo) error
- func (d *Database) SetChangeTrackingContext(ctx context.Context, info ChangeTrackingInfo) error
- func (d *Database) SetCompatibilityLevel(level CompatibilityLevel) error
- func (d *Database) SetCompatibilityLevelContext(ctx context.Context, level CompatibilityLevel) error
- func (d *Database) SetDatabaseOption(opt DatabaseOption, value string) error
- func (d *Database) SetDatabaseOptionContext(ctx context.Context, opt DatabaseOption, value string) error
- func (d *Database) SetDatabaseScopedConfig(name, value string, forSecondary bool) error
- func (d *Database) SetDatabaseScopedConfigContext(ctx context.Context, name, value string, forSecondary bool) error
- func (d *Database) SetDefaultFileGroup(name string) error
- func (d *Database) SetDefaultFileGroupContext(ctx context.Context, name string) error
- func (d *Database) SetExtendedProperty(name, value string, level ExtendedPropertyLevel) error
- func (d *Database) SetExtendedPropertyContext(ctx context.Context, name, value string, level ExtendedPropertyLevel) error
- func (d *Database) SetFileGroupReadOnly(name string, readOnly bool) error
- func (d *Database) SetFileGroupReadOnlyContext(ctx context.Context, name string, readOnly bool) error
- func (d *Database) SetOffline() error
- func (d *Database) SetOfflineContext(ctx context.Context) error
- func (d *Database) SetOnline() error
- func (d *Database) SetOnlineContext(ctx context.Context) error
- func (d *Database) SetOwner(principal string) error
- func (d *Database) SetOwnerContext(ctx context.Context, principal string) error
- func (d *Database) SetQueryStoreOptions(opts QueryStoreOptions) error
- func (d *Database) SetQueryStoreOptionsContext(ctx context.Context, opts QueryStoreOptions) error
- func (d *Database) SetReadOnly(readOnly bool) error
- func (d *Database) SetReadOnlyContext(ctx context.Context, readOnly bool) error
- func (d *Database) SetRecoveryModel(model RecoveryModel) error
- func (d *Database) SetRecoveryModelContext(ctx context.Context, model RecoveryModel) error
- func (d *Database) SetTableChangeTracking(schema, name string, enable, trackColumns bool) error
- func (d *Database) SetTableChangeTrackingContext(ctx context.Context, schema, name string, enable, trackColumns bool) error
- func (d *Database) SetUserAccess(mode string) error
- func (d *Database) SetUserAccessContext(ctx context.Context, mode string) error
- func (d *Database) SpaceUsed() (SpaceInfo, error)
- func (d *Database) SpaceUsedContext(ctx context.Context) (SpaceInfo, error)
- func (d *Database) State() string
- func (d *Database) StoredProcedureSeq() iter.Seq2[*StoredProcedure, error]
- func (d *Database) StoredProcedures() ([]*StoredProcedure, error)
- func (d *Database) StoredProceduresContext(ctx context.Context) ([]*StoredProcedure, error)
- func (d *Database) SynonymSeq() iter.Seq2[*Synonym, error]
- func (d *Database) Synonyms() ([]*Synonym, error)
- func (d *Database) SynonymsContext(ctx context.Context) ([]*Synonym, error)
- func (d *Database) SystemCatalog() (*Catalog, error)
- func (d *Database) SystemCatalogContext(ctx context.Context) (*Catalog, error)
- func (d *Database) SystemFunctionSeq() iter.Seq2[*UserDefinedFunction, error]
- func (d *Database) SystemFunctions() ([]*UserDefinedFunction, error)
- func (d *Database) SystemFunctionsContext(ctx context.Context) ([]*UserDefinedFunction, error)
- func (d *Database) SystemStoredProcedureSeq() iter.Seq2[*StoredProcedure, error]
- func (d *Database) SystemStoredProcedures() ([]*StoredProcedure, error)
- func (d *Database) SystemStoredProceduresContext(ctx context.Context) ([]*StoredProcedure, error)
- func (d *Database) SystemViewSeq() iter.Seq2[*View, error]
- func (d *Database) SystemViews() ([]*View, error)
- func (d *Database) SystemViewsContext(ctx context.Context) ([]*View, error)
- func (d *Database) TableByName(schema, name string) (*Table, error)
- func (d *Database) TableByNameContext(ctx context.Context, schema, name string) (*Table, error)
- func (d *Database) TableChangeTracking() ([]*TableChangeTracking, error)
- func (d *Database) TableChangeTrackingContext(ctx context.Context) ([]*TableChangeTracking, error)
- func (d *Database) TableChangeTrackingSeq() iter.Seq2[*TableChangeTracking, error]
- func (d *Database) TableSeq() iter.Seq2[*Table, error]
- func (d *Database) Tables() ([]*Table, error)
- func (d *Database) TablesBySchema(schema string) ([]*Table, error)
- func (d *Database) TablesBySchemaContext(ctx context.Context, schema string) ([]*Table, error)
- func (d *Database) TablesContext(ctx context.Context) ([]*Table, error)
- func (d *Database) Triggers() ([]*Trigger, error)
- func (d *Database) TriggersContext(ctx context.Context) ([]*Trigger, error)
- func (d *Database) UserByName(name string) (*User, error)
- func (d *Database) UserByNameContext(ctx context.Context, name string) (*User, error)
- func (d *Database) UserDefinedFunctions() ([]*UserDefinedFunction, error)
- func (d *Database) UserDefinedFunctionsContext(ctx context.Context) ([]*UserDefinedFunction, error)
- func (d *Database) UserSeq() iter.Seq2[*User, error]
- func (d *Database) Users() ([]*User, error)
- func (d *Database) UsersContext(ctx context.Context) ([]*User, error)
- func (d *Database) ViewSeq() iter.Seq2[*View, error]
- func (d *Database) Views() ([]*View, error)
- func (d *Database) ViewsContext(ctx context.Context) ([]*View, error)
- type DatabaseFile
- type DatabaseFileInfo
- type DatabaseFileSpec
- type DatabaseOption
- type DatabaseOptions
- type DatabasePermissionEntry
- type DatabaseRole
- type DatabaseScopedConfig
- type Dependency
- type DiskVolumeInfo
- type ErrorLogEntry
- type ExecutionPlan
- type ExtendedProperty
- type ExtendedPropertyLevel
- type FileGroup
- type FileModify
- type ForeignKey
- type Index
- func (idx *Index) Disable(t *Table) error
- func (idx *Index) DisableContext(ctx context.Context, t *Table) error
- func (idx *Index) Drop(t *Table) error
- func (idx *Index) DropContext(ctx context.Context, t *Table) error
- func (idx *Index) Enable(t *Table) error
- func (idx *Index) Rebuild(t *Table, fillFactor int) error
- func (idx *Index) RebuildContext(ctx context.Context, t *Table, fillFactor int) error
- func (idx *Index) Reorganize(t *Table) error
- func (idx *Index) ReorganizeContext(ctx context.Context, t *Table) error
- type IndexColumn
- type IndexColumnDef
- type IndexFragmentation
- type IndexType
- type Job
- func (j *Job) AddSchedule(req JobScheduleRequest) error
- func (j *Job) AddScheduleContext(ctx context.Context, req JobScheduleRequest) error
- func (j *Job) AddStep(req JobStepRequest) error
- func (j *Job) AddStepContext(ctx context.Context, req JobStepRequest) error
- func (j *Job) Disable() error
- func (j *Job) Drop() error
- func (j *Job) DropContext(ctx context.Context) error
- func (j *Job) Enable() error
- func (j *Job) History(limit int) ([]*JobHistoryEntry, error)
- func (j *Job) HistoryContext(ctx context.Context, limit int) ([]*JobHistoryEntry, error)
- func (j *Job) Start(stepName string) error
- func (j *Job) StartContext(ctx context.Context, stepName string) error
- func (j *Job) Steps() ([]*JobStep, error)
- func (j *Job) StepsContext(ctx context.Context) ([]*JobStep, error)
- func (j *Job) Stop() error
- func (j *Job) StopContext(ctx context.Context) error
- type JobHistoryEntry
- type JobOutcome
- type JobScheduleRequest
- type JobState
- type JobStep
- type JobStepRequest
- type KerberosOptions
- type Language
- type LinkedServer
- type Login
- func (l *Login) AddServerRoleMember(roleName string) error
- func (l *Login) AddServerRoleMemberContext(ctx context.Context, roleName string) error
- func (l *Login) ChangePassword(newPassword string) error
- func (l *Login) ChangePasswordContext(ctx context.Context, newPassword string) error
- func (l *Login) ChangePasswordWithOptions(newPassword string, mustChange, unlock bool) error
- func (l *Login) ChangePasswordWithOptionsContext(ctx context.Context, newPassword string, mustChange, unlock bool) error
- func (l *Login) Details() (*LoginDetails, error)
- func (l *Login) DetailsContext(ctx context.Context) (*LoginDetails, error)
- func (l *Login) Disable() error
- func (l *Login) DisableContext(ctx context.Context) error
- func (l *Login) Drop() error
- func (l *Login) Enable() error
- func (l *Login) EnableContext(ctx context.Context) error
- func (l *Login) MapCredential(credential string) error
- func (l *Login) MapCredentialContext(ctx context.Context, credential string) error
- func (l *Login) MapToDatabase(dbName, userName, defaultSchema string) error
- func (l *Login) MapToDatabaseContext(ctx context.Context, dbName, userName, defaultSchema string) error
- func (l *Login) RemoveServerRoleMember(roleName string) error
- func (l *Login) RemoveServerRoleMemberContext(ctx context.Context, roleName string) error
- func (l *Login) Rename(newName string) error
- func (l *Login) RenameContext(ctx context.Context, newName string) error
- func (l *Login) SetDefaultDatabase(name string) error
- func (l *Login) SetDefaultDatabaseContext(ctx context.Context, name string) error
- func (l *Login) SetDefaultLanguage(lang string) error
- func (l *Login) SetDefaultLanguageContext(ctx context.Context, lang string) error
- func (l *Login) SetPasswordPolicy(checkPolicy, checkExpiration bool) error
- func (l *Login) SetPasswordPolicyContext(ctx context.Context, checkPolicy, checkExpiration bool) error
- func (l *Login) UnmapCredential(credential string) error
- func (l *Login) UnmapCredentialContext(ctx context.Context, credential string) error
- func (l *Login) UnmapFromDatabase(dbName string) error
- func (l *Login) UnmapFromDatabaseContext(ctx context.Context, dbName string) error
- func (l *Login) UserMappingSeq() iter.Seq2[*LoginUserMapping, error]
- func (l *Login) UserMappings() ([]*LoginUserMapping, error)
- func (l *Login) UserMappingsContext(ctx context.Context) ([]*LoginUserMapping, error)
- type LoginDetails
- type LoginUserMapping
- type MailProfile
- type ObjectPermission
- type PartitionFunction
- func (pf *PartitionFunction) Drop() error
- func (pf *PartitionFunction) DropContext(ctx context.Context) error
- func (pf *PartitionFunction) MergeRange(value string) error
- func (pf *PartitionFunction) MergeRangeContext(ctx context.Context, value string) error
- func (pf *PartitionFunction) SplitRange(value string) error
- func (pf *PartitionFunction) SplitRangeContext(ctx context.Context, value string) error
- type PartitionInfo
- type PartitionScheme
- type PermissionEntry
- type PermissionState
- type PrincipalSecurable
- type ProcParam
- type ProcResult
- type ProcessorInfo
- type QueryStoreInfo
- type QueryStoreOptions
- type RecoveryModel
- type RelocateFile
- type RestoreOptions
- type RoleMember
- type SQLError
- type Schema
- type ScriptCollector
- type ScriptOptions
- type Scripter
- func (sc *Scripter) ScriptDatabase() (string, error)
- func (sc *Scripter) ScriptFunction(schema, name string) (string, error)
- func (sc *Scripter) ScriptFunctionContext(ctx context.Context, schema, name string) (string, error)
- func (sc *Scripter) ScriptStoredProcedure(schema, name string) (string, error)
- func (sc *Scripter) ScriptStoredProcedureContext(ctx context.Context, schema, name string) (string, error)
- func (sc *Scripter) ScriptTable(schema, name string) (string, error)
- func (sc *Scripter) ScriptTableContext(ctx context.Context, schema, name string) (string, error)
- func (sc *Scripter) ScriptView(schema, name string) (string, error)
- func (sc *Scripter) ScriptViewContext(ctx context.Context, schema, name string) (string, error)
- type SearchResult
- type SecurityPolicy
- func (p *SecurityPolicy) Disable() error
- func (p *SecurityPolicy) DisableContext(ctx context.Context) error
- func (p *SecurityPolicy) Drop() error
- func (p *SecurityPolicy) DropContext(ctx context.Context) error
- func (p *SecurityPolicy) Enable() error
- func (p *SecurityPolicy) EnableContext(ctx context.Context) error
- type SecurityPredicate
- type Sequence
- func (seq *Sequence) Drop() error
- func (seq *Sequence) DropContext(ctx context.Context) error
- func (seq *Sequence) NextValue() (int64, error)
- func (seq *Sequence) NextValueContext(ctx context.Context) (int64, error)
- func (seq *Sequence) Restart(value int64) error
- func (seq *Sequence) RestartContext(ctx context.Context, value int64) error
- type Server
- func (s *Server) ActiveSessions(includeSystem bool) ([]*ActiveSession, error)
- func (s *Server) ActiveSessionsContext(ctx context.Context, includeSystem bool) ([]*ActiveSession, error)
- func (s *Server) Backup(opts BackupOptions) error
- func (s *Server) BackupContext(ctx context.Context, opts BackupOptions) error
- func (s *Server) BackupFileList(device string) ([]*BackupFile, error)
- func (s *Server) BackupFileListContext(ctx context.Context, device string) ([]*BackupFile, error)
- func (s *Server) BackupFileSeq(device string) iter.Seq2[*BackupFile, error]
- func (s *Server) BackupHeaderSeq(device string) iter.Seq2[*BackupHeader, error]
- func (s *Server) BackupHeaders(device string) ([]*BackupHeader, error)
- func (s *Server) BackupHeadersContext(ctx context.Context, device string) ([]*BackupHeader, error)
- func (s *Server) BackupHistory(databaseName string) ([]*BackupInfo, error)
- func (s *Server) BackupHistoryContext(ctx context.Context, databaseName string) ([]*BackupInfo, error)
- func (s *Server) Close() error
- func (s *Server) ConfigurationByName(name string) (*ConfigurationOption, error)
- func (s *Server) ConfigurationByNameContext(ctx context.Context, name string) (*ConfigurationOption, error)
- func (s *Server) Configurations() ([]*ConfigurationOption, error)
- func (s *Server) ConfigurationsContext(ctx context.Context) ([]*ConfigurationOption, error)
- func (s *Server) CreateDatabase(name string, opts *CreateDatabaseOptions) error
- func (s *Server) CreateDatabaseContext(ctx context.Context, name string, opts *CreateDatabaseOptions) error
- func (s *Server) CreateJob(req CreateJobRequest) (*Job, error)
- func (s *Server) CreateJobContext(ctx context.Context, req CreateJobRequest) (*Job, error)
- func (s *Server) CreateLogin(name, password string, opts *CreateLoginOptions) error
- func (s *Server) CreateLoginContext(ctx context.Context, name, password string, opts *CreateLoginOptions) error
- func (s *Server) CredentialSeq() iter.Seq2[*Credential, error]
- func (s *Server) Credentials() ([]*Credential, error)
- func (s *Server) CredentialsContext(ctx context.Context) ([]*Credential, error)
- func (s *Server) CurrentDatabase() (string, error)
- func (s *Server) CurrentDatabaseContext(ctx context.Context) (string, error)
- func (s *Server) CycleErrorLog() error
- func (s *Server) CycleErrorLogContext(ctx context.Context) error
- func (s *Server) DB() *sql.DB
- func (s *Server) Database(name string) *Database
- func (s *Server) DatabaseByName(name string) (*Database, error)
- func (s *Server) DatabaseByNameContext(ctx context.Context, name string) (*Database, error)
- func (s *Server) DatabaseSeq() iter.Seq2[*Database, error]
- func (s *Server) Databases() ([]*Database, error)
- func (s *Server) DatabasesContext(ctx context.Context) ([]*Database, error)
- func (s *Server) DenyServerPermission(permission, principal string) error
- func (s *Server) DenyServerPermissionContext(ctx context.Context, permission, principal string) error
- func (s *Server) DiskVolumeSeq() iter.Seq2[DiskVolumeInfo, error]
- func (s *Server) DiskVolumes() ([]DiskVolumeInfo, error)
- func (s *Server) DiskVolumesContext(ctx context.Context) ([]DiskVolumeInfo, error)
- func (s *Server) DropDatabase(name string, force bool) error
- func (s *Server) DropDatabaseContext(ctx context.Context, name string, force bool) error
- func (s *Server) DropLogin(name string) error
- func (s *Server) DropLoginContext(ctx context.Context, name string) error
- func (s *Server) GrantServerPermission(permission, principal string) error
- func (s *Server) GrantServerPermissionContext(ctx context.Context, permission, principal string) error
- func (s *Server) Info() *ServerInfo
- func (s *Server) JobByName(name string) (*Job, error)
- func (s *Server) JobByNameContext(ctx context.Context, name string) (*Job, error)
- func (s *Server) JobSeq() iter.Seq2[*Job, error]
- func (s *Server) Jobs() ([]*Job, error)
- func (s *Server) JobsContext(ctx context.Context) ([]*Job, error)
- func (s *Server) KillSession(sessionID int) error
- func (s *Server) KillSessionContext(ctx context.Context, sessionID int) error
- func (s *Server) LanguageSeq() iter.Seq2[*Language, error]
- func (s *Server) Languages() ([]*Language, error)
- func (s *Server) LanguagesContext(ctx context.Context) ([]*Language, error)
- func (s *Server) LinkedServers() ([]*LinkedServer, error)
- func (s *Server) LinkedServersContext(ctx context.Context) ([]*LinkedServer, error)
- func (s *Server) Login(name string) *Login
- func (s *Server) LoginByName(name string) (*Login, error)
- func (s *Server) LoginByNameContext(ctx context.Context, name string) (*Login, error)
- func (s *Server) LoginSeq() iter.Seq2[*Login, error]
- func (s *Server) Logins() ([]*Login, error)
- func (s *Server) LoginsContext(ctx context.Context) ([]*Login, error)
- func (s *Server) MailProfiles() ([]*MailProfile, error)
- func (s *Server) MailProfilesContext(ctx context.Context) ([]*MailProfile, error)
- func (s *Server) MemoryStats() (*ServerMemoryStats, error)
- func (s *Server) MemoryStatsContext(ctx context.Context) (*ServerMemoryStats, error)
- func (s *Server) Name() string
- func (s *Server) ProcessorInfo() (*ProcessorInfo, error)
- func (s *Server) ProcessorInfoContext(ctx context.Context) (*ProcessorInfo, error)
- func (s *Server) ReadErrorLog(logNumber int) ([]*ErrorLogEntry, error)
- func (s *Server) ReadErrorLogContext(ctx context.Context, logNumber int) ([]*ErrorLogEntry, error)
- func (s *Server) Reconfigure(override bool) error
- func (s *Server) ReconfigureContext(ctx context.Context, override bool) error
- func (s *Server) Restore(opts RestoreOptions) error
- func (s *Server) RestoreContext(ctx context.Context, opts RestoreOptions) error
- func (s *Server) RevokeServerPermission(permission, principal string) error
- func (s *Server) RevokeServerPermissionContext(ctx context.Context, permission, principal string) error
- func (s *Server) SecurityInfo() (*ServerSecurityInfo, error)
- func (s *Server) SecurityInfoContext(ctx context.Context) (*ServerSecurityInfo, error)
- func (s *Server) SendMail(profile, recipients, subject, body string) error
- func (s *Server) SendMailContext(ctx context.Context, profile, recipients, subject, body string) error
- func (s *Server) ServerPermissionSeq() iter.Seq2[*ServerPermissionEntry, error]
- func (s *Server) ServerPermissions() ([]*ServerPermissionEntry, error)
- func (s *Server) ServerPermissionsContext(ctx context.Context) ([]*ServerPermissionEntry, error)
- func (s *Server) ServerRoles() ([]*ServerRole, error)
- func (s *Server) ServerRolesContext(ctx context.Context) ([]*ServerRole, error)
- func (s *Server) VerifyBackup(device string) error
- func (s *Server) VerifyBackupContext(ctx context.Context, device string) error
- type ServerInfo
- type ServerMemoryStats
- type ServerPermissionEntry
- type ServerRole
- type ServerSecurityInfo
- type ServerVersion
- type SpaceInfo
- type Statistic
- type StoredProcedure
- type Synonym
- type Table
- func (t *Table) AddColumn(col ColumnDefinition) error
- func (t *Table) AddColumnContext(ctx context.Context, col ColumnDefinition) error
- func (t *Table) AlterColumn(col ColumnDefinition) error
- func (t *Table) AlterColumnContext(ctx context.Context, col ColumnDefinition) error
- func (t *Table) CheckConstraints() ([]*CheckConstraint, error)
- func (t *Table) CheckConstraintsContext(ctx context.Context) ([]*CheckConstraint, error)
- func (t *Table) ColumnSeq() iter.Seq2[*Column, error]
- func (t *Table) Columns() ([]*Column, error)
- func (t *Table) ColumnsContext(ctx context.Context) ([]*Column, error)
- func (t *Table) CreateIndex(req CreateIndexRequest) error
- func (t *Table) CreateIndexContext(ctx context.Context, req CreateIndexRequest) error
- func (t *Table) CreateStatistic(name string, columns []string, samplePct int) error
- func (t *Table) CreateStatisticContext(ctx context.Context, name string, columns []string, samplePct int) error
- func (t *Table) DB() *Database
- func (t *Table) Detail() (*TableDetail, error)
- func (t *Table) DetailContext(ctx context.Context) (*TableDetail, error)
- func (t *Table) DropColumn(name string) error
- func (t *Table) DropColumnContext(ctx context.Context, name string) error
- func (t *Table) ForeignKeySeq() iter.Seq2[*ForeignKey, error]
- func (t *Table) ForeignKeys() ([]*ForeignKey, error)
- func (t *Table) ForeignKeysContext(ctx context.Context) ([]*ForeignKey, error)
- func (t *Table) FragmentationStats(mode string) ([]*IndexFragmentation, error)
- func (t *Table) FragmentationStatsContext(ctx context.Context, mode string) ([]*IndexFragmentation, error)
- func (t *Table) FullName() string
- func (t *Table) IndexSeq() iter.Seq2[*Index, error]
- func (t *Table) Indexes() ([]*Index, error)
- func (t *Table) IndexesContext(ctx context.Context) ([]*Index, error)
- func (t *Table) PartitionSeq() iter.Seq2[*PartitionInfo, error]
- func (t *Table) Partitions() ([]*PartitionInfo, error)
- func (t *Table) PartitionsContext(ctx context.Context) ([]*PartitionInfo, error)
- func (t *Table) RebuildAllIndexes(fillFactor int) error
- func (t *Table) RebuildAllIndexesContext(ctx context.Context, fillFactor int) error
- func (t *Table) RowCount() (int64, error)
- func (t *Table) RowCountContext(ctx context.Context) (int64, error)
- func (t *Table) SpaceUsed() (*TableSpaceInfo, error)
- func (t *Table) SpaceUsedContext(ctx context.Context) (*TableSpaceInfo, error)
- func (t *Table) StatisticSeq() iter.Seq2[*Statistic, error]
- func (t *Table) Statistics() ([]*Statistic, error)
- func (t *Table) StatisticsContext(ctx context.Context) ([]*Statistic, error)
- func (t *Table) TriggerSeq() iter.Seq2[*Trigger, error]
- func (t *Table) Triggers() ([]*Trigger, error)
- func (t *Table) TriggersContext(ctx context.Context) ([]*Trigger, error)
- func (t *Table) TruncateTable() error
- func (t *Table) TruncateTableContext(ctx context.Context) error
- func (t *Table) UpdateAllStatistics(samplePct int) error
- func (t *Table) UpdateAllStatisticsContext(ctx context.Context, samplePct int) error
- type TableChangeTracking
- type TableDetail
- type TableSpaceInfo
- type Trigger
- type User
- func (u *User) AddToRole(roleName string) error
- func (u *User) Deny(permission ObjectPermission, objectSchema, objectName string) error
- func (u *User) DenyContext(ctx context.Context, permission ObjectPermission, ...) error
- func (u *User) Drop() error
- func (u *User) Grant(permission ObjectPermission, objectSchema, objectName string) error
- func (u *User) GrantContext(ctx context.Context, permission ObjectPermission, ...) error
- func (u *User) RemoveFromRole(roleName string) error
- func (u *User) Rename(newName string) error
- func (u *User) RenameContext(ctx context.Context, newName string) error
- func (u *User) Revoke(permission ObjectPermission, objectSchema, objectName string) error
- func (u *User) RevokeContext(ctx context.Context, permission ObjectPermission, ...) error
- func (u *User) SetDefaultSchema(schemaName string) error
- func (u *User) SetDefaultSchemaContext(ctx context.Context, schemaName string) error
- func (u *User) SetLogin(loginName string) error
- func (u *User) SetLoginContext(ctx context.Context, loginName string) error
- type UserDefinedFunction
- type View
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildBackupStatement ¶ added in v0.0.4
func BuildBackupStatement(opts BackupOptions) (string, error)
BuildBackupStatement returns the T-SQL BACKUP statement opts describes, without executing it — for callers that want to show or hand off the script (e.g. an editor pane) rather than run it immediately. BackupContext validates and builds the statement the same way, then runs what this returns.
func BuildRestoreStatement ¶ added in v0.0.5
func BuildRestoreStatement(opts RestoreOptions) (string, error)
BuildRestoreStatement returns the T-SQL RESTORE statement opts describes, without executing it — the RESTORE counterpart of BuildBackupStatement. RestoreContext validates and builds the statement the same way, then runs what this returns.
func ColumnTypeString ¶ added in v0.0.5
ColumnTypeString returns the T-SQL data-type fragment for a Column read from sys.columns. nchar/nvarchar store max_length in bytes (2 per character).
func DatabasePermissionNames ¶ added in v0.0.5
func DatabasePermissionNames() []string
DatabasePermissionNames returns every database-scoped permission name GRANT/DENY/REVOKE accepts, sorted — see ServerPermissionNames for what it's used for.
func IsRetryable ¶ added in v0.0.4
IsRetryable reports whether err represents a transient failure worth retrying — the driver's RetryableError, or a dropped pooled connection (driver.ErrBadConn), including when wrapped. It is exported so callers that run their own statements (e.g. an ad-hoc query runner) can decide whether a failure is worth another attempt; note that only idempotent operations are safe to retry blindly.
func ObjectPermissionNames ¶ added in v0.0.5
func ObjectPermissionNames() []string
ObjectPermissionNames returns every object-scoped permission name GRANT/DENY/REVOKE accepts on a table or view, sorted — see ServerPermissionNames for what it's used for.
func ParseServerAddress ¶ added in v0.0.4
ParseServerAddress splits a user-supplied server address into its host, named-instance, and port components, accepting every form SSMS itself accepts in its "Server name" field:
host host:port host,port host\instance host\instance,port
Exported so callers (e.g. a UI layer building its own address/DSN preview, or resolving a separate "port" field against a Server string that may already carry its own) can reuse the same parsing buildDSN relies on, instead of duplicating it.
A malformed trailing port (non-numeric) is left as part of host rather than rejected outright — the caller surfaces connection failures via the driver's own error, not a separate parse error here.
func QuoteLiteral ¶ added in v0.0.4
QuoteLiteral renders s as a T-SQL string literal, including the surrounding single quotes and doubling any embedded quote — safe to embed in SQL text where a parameter placeholder is not accepted (DDL, dynamic SQL). Prefer a query parameter for ordinary values.
func QuoteName ¶ added in v0.0.4
QuoteName wraps a SQL Server identifier (schema, table, column, ...) in square brackets, doubling any embedded closing bracket — the equivalent of T-SQL's QUOTENAME(). Use it to build object names safely; note it quotes the whole string as one identifier, so pass each part of a multi-part name separately.
func SchemaPermissionNames ¶ added in v0.0.5
func SchemaPermissionNames() []string
SchemaPermissionNames returns every schema-scoped permission name GRANT/DENY/REVOKE accepts ON SCHEMA::x, sorted — see ObjectPermissionNames for what it's used for.
func ServerPermissionNames ¶ added in v0.0.5
func ServerPermissionNames() []string
ServerPermissionNames returns every server-scoped permission name GRANT/DENY/REVOKE accepts, sorted — the catalog SSMS's Server Properties > Permissions page enumerates for a principal regardless of whether it already has an explicit GRANT/DENY entry.
Types ¶
type ActiveSession ¶
type ActiveSession struct {
SessionID int
LoginName string
HostName string
ProgramName string
DatabaseName string
Status string
CPUTime int64
MemoryUsage int64
TotalElapsedMS int64
LastRequestStart string
CommandText string
BlockingSessionID int
WaitType string
WaitTimeMS int64
}
ActiveSession holds information about one session from sys.dm_exec_sessions.
type AuthMethod ¶
type AuthMethod int
AuthMethod selects the authentication strategy for Connect().
const ( // AuthSQLServer uses a SQL Server login and password. // Set ConnectionOptions.User and ConnectionOptions.Password. AuthSQLServer AuthMethod = iota // AuthWindows uses the Windows/Active Directory identity (on-premises, // domain-joined host). On Windows it uses native SSPI. On every other // platform it authenticates via Kerberos: with no credentials it uses the // ambient kinit credential cache (single sign-on); set ConnectionOptions. // Kerberos for a keytab, an explicit realm, or a non-default krb5.conf, // or set User+Password for a username/password Kerberos login. AuthWindows // AuthEntraDefault uses DefaultAzureCredential (env vars -> MSI -> AzCLI). // Ideal for code that must work both locally and in Azure without changes. AuthEntraDefault // AuthEntraPassword uses an Entra user UPN + password. // Set ConnectionOptions.User (UPN) and ConnectionOptions.Password. AuthEntraPassword // AuthEntraMSI uses a system-assigned Managed Identity. // Set ConnectionOptions.ClientID to select a user-assigned identity. AuthEntraMSI // AuthEntraServicePrincipal uses an app registration client-secret or cert. // Set ConnectionOptions.User to the application (client) ID, // ConnectionOptions.TenantID, and either: // - ConnectionOptions.Password (client secret), or // - ConnectionOptions.ClientCertPath + optionally ClientCertPassword (cert). AuthEntraServicePrincipal // AuthEntraServicePrincipalAccessToken presents a pre-acquired bearer token. // Set ConnectionOptions.AccessToken. AuthEntraServicePrincipalAccessToken // AuthEntraIntegrated uses Windows SSO federated with Entra (on-premises AD // joined to Azure AD). No credentials needed. AuthEntraIntegrated // AuthEntraInteractive opens a browser for interactive sign-in (human only). // Set ConnectionOptions.ApplicationClientID if required by the tenant. AuthEntraInteractive // AuthEntraDeviceCode prints a device code for human sign-in on another device. AuthEntraDeviceCode // AuthEntraAzCLI uses the credential from "az login". AuthEntraAzCLI // AuthEntraAzureDeveloperCLI uses the credential from "azd auth login". AuthEntraAzureDeveloperCLI // AuthEntraAzurePipelines uses Azure DevOps OIDC federated credentials. // Requires SYSTEM_ACCESSTOKEN and SYSTEM_OIDCREQUESTURI env vars. AuthEntraAzurePipelines // AuthEntraOnBehalfOf uses the OAuth 2.0 on-behalf-of flow. // Set ConnectionOptions.AccessToken to the inbound user assertion. AuthEntraOnBehalfOf )
type BackupAction ¶
type BackupAction string
BackupAction mirrors SQL Server backup types.
const ( BackupActionDatabase BackupAction = "DATABASE" BackupActionLog BackupAction = "LOG" BackupActionFiles BackupAction = "FILES" BackupActionDifferential BackupAction = "DATABASE_DIFFERENTIAL" )
type BackupFile ¶ added in v0.0.5
type BackupFile struct {
LogicalName string
PhysicalName string
Type string // "D" data, "L" log, "F" full-text, "S" FILESTREAM
FileGroupName string
Size int64 // bytes
MaxSize int64 // bytes
}
BackupFile describes one database file inside a backup set, as reported by RESTORE FILELISTONLY.
type BackupHeader ¶ added in v0.0.5
type BackupHeader struct {
BackupName string
Description string
BackupType BackupAction
Position int
DatabaseName string
ServerName string
BackupStart time.Time
BackupFinish time.Time
BackupSize int64 // bytes
CompressedSize int64 // bytes; equals BackupSize when not compressed
Compressed bool
HasChecksums bool
IsCopyOnly bool
DatabaseVersion int
CompatibilityLevel CompatibilityLevel
SoftwareVersionMajor int
RecoveryModel string
}
BackupHeader describes one backup set on a backup device, as reported by RESTORE HEADERONLY.
type BackupInfo ¶
type BackupInfo struct {
DatabaseName string
BackupSetName string
Description string
BackupType BackupAction
BackupStart time.Time
BackupFinish time.Time
BackupSize int64
DeviceName string
UserName string
ServerName string
DatabaseVersion int
CompatibilityLevel CompatibilityLevel
}
BackupInfo holds metadata about a specific database backup.
type BackupOptions ¶
type BackupOptions struct {
// Database to back up (required).
Database string
// Action: DATABASE (default), LOG, or FILES.
Action BackupAction
// Devices is one or more backup device paths, e.g. `C:\Backups\MyDB.bak`.
Devices []string
// BackupSetName is the NAME clause.
BackupSetName string
// Description is the DESCRIPTION clause.
Description string
// MediaDescription is the MEDIADESCRIPTION clause.
MediaDescription string
// Compression: nil = server default, new(true) = force on, new(false) = force off.
Compression *bool
// CopyOnly marks this as a copy-only backup (does not break the log chain).
CopyOnly bool
// Checksum adds WITH CHECKSUM.
Checksum bool
// Format reinitialises the media.
Format bool
// Init overwrites existing backup sets on the media.
Init bool
// Stats controls progress reporting frequency (e.g. 10 = every 10%).
// If Progress is set and Stats is left at 0, it defaults to 10 so
// percent-complete messages actually get emitted.
Stats int
// Progress, if set, is called for every message SQL Server emits while
// the backup runs, including the "N percent processed" notices STATS
// produces — pct is -1 for a message that doesn't carry a percentage.
Progress func(pct int, message string)
}
BackupOptions configures a BACKUP DATABASE or BACKUP LOG operation.
type BulkCopy ¶ added in v0.0.4
type BulkCopy struct {
// Schema is the destination schema; empty defaults to "dbo".
Schema string
// Table is the destination table name (unquoted).
Table string
// Columns are the destination columns, in the order each row supplies
// its values. Required.
Columns []string
// Options tunes the load; the zero value is fine.
Options BulkOptions
}
BulkCopy describes the destination of a bulk-insert load.
type BulkOptions ¶ added in v0.0.4
type BulkOptions struct {
// CheckConstraints enforces CHECK and FOREIGN KEY constraints on the
// incoming rows. Off by default (as with bcp), which is faster but can
// admit rows a normal INSERT would reject.
CheckConstraints bool
// FireTriggers fires AFTER INSERT triggers on the destination table.
// Off by default, so triggers do not run during the load.
FireTriggers bool
// KeepNulls keeps NULLs supplied by the source instead of substituting
// the destination column's DEFAULT.
KeepNulls bool
// TableLock takes a bulk-update (BU) lock on the table for the duration
// of the load rather than acquiring row/page locks — faster for a
// dedicated import.
TableLock bool
// RowsPerBatch hints the number of rows per batch sent to the server.
// Zero lets the server decide.
RowsPerBatch int
// KilobytesPerBatch hints the batch size in kilobytes. Zero lets the
// server decide.
KilobytesPerBatch int
// Order names the columns the source rows are already sorted by (each
// entry a column optionally followed by " ASC"/" DESC"). When it matches
// the destination's clustered index the server can skip an internal sort.
Order []string
}
BulkOptions tunes a bulk-copy load, mirroring the WITH options of T-SQL's INSERT BULK. The zero value performs a plain load with server defaults.
type Catalog ¶ added in v0.0.5
type Catalog struct {
Schemas []string
Objects []CatalogObject
}
Catalog is a bulk snapshot of every user table and view in a database, each with its columns already loaded — see Database.Catalog.
type CatalogColumn ¶ added in v0.0.5
type CatalogColumn struct {
Name string
DataType DataType
MaxLength int
Precision int
Scale int
IsNullable bool
}
CatalogColumn is one column of a CatalogObject — the subset of Column's fields relevant to identifying and describing a column, without the per-table detail (identity, computed, default, rowguid) that a bulk snapshot has no need for.
type CatalogObject ¶ added in v0.0.5
type CatalogObject struct {
ObjectID int
Schema string
Name string
Type CatalogObjectType
Columns []CatalogColumn
}
CatalogObject is one table or view and its columns, in ordinal order.
type CatalogObjectType ¶ added in v0.0.5
type CatalogObjectType int
CatalogObjectType distinguishes a Catalog entry's underlying object kind.
const ( CatalogTable CatalogObjectType = iota CatalogView )
type ChangeTrackingInfo ¶ added in v0.0.4
type ChangeTrackingInfo struct {
Enabled bool
AutoCleanup bool
RetentionPeriod int
RetentionUnit string // e.g. "DAYS", "HOURS", "MINUTES"
}
ChangeTrackingInfo holds database-level change tracking settings.
type CheckConstraint ¶
type CheckConstraint struct {
Name string
Definition string
IsDisabled bool
Column string // empty for table-level checks
}
CheckConstraint represents a CHECK constraint.
type Column ¶
type Column struct {
Name string
OrdinalPosition int
DataType DataType
MaxLength int // -1 = MAX
Precision int
Scale int
IsNullable bool
IsIdentity bool
IdentitySeed int64
IdentityIncrement int64
IsComputed bool
ComputedText string
DefaultValue *ColumnDefault
IsRowGUID bool
Collation string
IsPrimaryKey bool
}
Column mirrors Microsoft.SqlServer.Management.Smo.Column.
type ColumnDefault ¶
ColumnDefault represents a column default constraint.
type ColumnDefinition ¶
type ColumnDefinition struct {
Name string
DataType DataType
MaxLength int // char/varchar/nchar/nvarchar: 0 = omit, -1 = MAX
Precision int // decimal/numeric
Scale int // decimal/numeric / datetime2 / time
IsNullable bool
IsIdentity bool
IdentitySeed int64
IdentityIncr int64
DefaultValue string // expression, e.g. "sysdatetime()" or "0"
IsPrimaryKey bool
}
ColumnDefinition describes a column in a CREATE TABLE statement.
type ColumnEncryptionKey ¶
type ColumnEncryptionKey struct {
Name string
ID int
MasterKeyName string
EncryptionAlgorithm string
// contains filtered or unexported fields
}
ColumnEncryptionKey mirrors sys.column_encryption_keys.
func (*ColumnEncryptionKey) Drop ¶
func (cek *ColumnEncryptionKey) Drop() error
Drop drops the column encryption key.
func (*ColumnEncryptionKey) DropContext ¶ added in v0.0.5
func (cek *ColumnEncryptionKey) DropContext(ctx context.Context) error
DropContext is the context-aware variant of Drop.
type ColumnMasterKey ¶
type ColumnMasterKey struct {
Name string
ID int
KeyStoreProviderName string
KeyPath string
AllowEnclaveComputations bool
// contains filtered or unexported fields
}
ColumnMasterKey mirrors sys.column_master_keys.
func (*ColumnMasterKey) Drop ¶
func (cmk *ColumnMasterKey) Drop() error
Drop drops the column master key.
func (*ColumnMasterKey) DropContext ¶ added in v0.0.5
func (cmk *ColumnMasterKey) DropContext(ctx context.Context) error
DropContext is the context-aware variant of Drop.
type CompatibilityLevel ¶
type CompatibilityLevel int
CompatibilityLevel mirrors SQL Server database compatibility levels.
const ( CompatLevel2008 CompatibilityLevel = 100 CompatLevel2012 CompatibilityLevel = 110 CompatLevel2014 CompatibilityLevel = 120 CompatLevel2016 CompatibilityLevel = 130 CompatLevel2017 CompatibilityLevel = 140 CompatLevel2019 CompatibilityLevel = 150 CompatLevel2022 CompatibilityLevel = 160 CompatLevel2025 CompatibilityLevel = 170 )
type ConfigurationOption ¶
type ConfigurationOption struct {
ConfigID int
Name string
Value int64
ValueInUse int64
Minimum int64
Maximum int64
IsDynamic bool // true = change takes effect without a restart
IsAdvanced bool
Description string
// contains filtered or unexported fields
}
ConfigurationOption mirrors a row from sys.configurations.
func (*ConfigurationOption) SetValue ¶
func (c *ConfigurationOption) SetValue(value int64) error
SetValue changes the option value using sp_configure. For non-dynamic options, call Server.Reconfigure() afterwards.
func (*ConfigurationOption) SetValueContext ¶
func (c *ConfigurationOption) SetValueContext(ctx context.Context, value int64) error
type ConnectionOptions ¶
type ConnectionOptions struct {
// Server is the host[:port] or host\instance, e.g. "localhost:1433" or
// "myserver.database.windows.net". Required.
Server string
// Database to connect to initially. Defaults to "master".
Database string
// Auth selects the authentication strategy. Defaults to AuthSQLServer.
Auth AuthMethod
// User is the SQL Server login, Windows UPN, or Entra app client ID,
// depending on the Auth method chosen.
User string
// Password is the SQL Server password, Entra user password, or client secret.
Password string
// TenantID is the Entra tenant (directory) ID. Required for service principal
// methods when the tenant differs from the server tenant.
TenantID string
// ClientID selects a user-assigned Managed Identity when Auth=AuthEntraMSI.
ClientID string
// ClientCertPath is the path to a PEM/PFX certificate for
// Auth=AuthEntraServicePrincipal certificate-based auth.
ClientCertPath string
// ClientCertPassword is the private-key password for ClientCertPath.
ClientCertPassword string
// AccessToken is a pre-acquired bearer token for
// Auth=AuthEntraServicePrincipalAccessToken or AuthEntraOnBehalfOf.
// It is embedded once at connect time; prefer AccessTokenProvider when
// the token can expire during the connection's lifetime.
AccessToken string
// AccessTokenProvider, when set, is called to obtain a bearer token for
// each new pooled connection, so tokens that expire (e.g. Entra tokens,
// good for ~1 hour) are refreshed automatically rather than embedded
// once and going stale. It takes precedence over AccessToken and Auth:
// the token is presented directly to SQL Server, bypassing the fedauth
// DSN machinery, so it works for any scenario where the caller mints
// its own tokens. The error it returns aborts the connection attempt.
AccessTokenProvider func(ctx context.Context) (string, error)
// ApplicationClientID is the AAD enterprise application client ID registered
// by the tenant admin to allow interactive / device-code flows.
ApplicationClientID string
// ServerSPN overrides the Kerberos service principal name of the target
// instance (e.g. "MSSQLSvc/host.contoso.com:1433"). Used only with
// AuthWindows. Leave empty to let the driver derive it from the address,
// which is correct for most host:port connections.
ServerSPN string
// Kerberos configures Active Directory authentication for AuthWindows.
// It matters mainly on non-Windows hosts, where AuthWindows authenticates
// via Kerberos rather than native SSPI; see KerberosOptions. The zero
// value uses the host's ambient Kerberos setup (krb5.conf + kinit cache).
Kerberos KerberosOptions
// Encrypt controls the encryption mode.
// "" - driver default (true for Azure endpoints, false otherwise)
// "true" - always encrypt
// "false" - no encryption
// "disable" - no encryption (legacy alias)
// "strict" - TDS 8.0 strict encryption
Encrypt string
// TrustServerCertificate disables TLS certificate validation.
// Handy for dev/local instances; do not use in production.
TrustServerCertificate bool
// HostNameInCertificate overrides the expected server name in the TLS cert.
// Useful when connecting via IP address or when the cert CN differs.
HostNameInCertificate string
// DisableInstanceDiscovery disables OIDC instance discovery.
// Set true only for disconnected or private clouds (e.g. Azure Stack).
DisableInstanceDiscovery bool
// SendCertificateChain controls whether the full certificate chain is sent
// in token requests (needed for Subject Name/Issuer SNI auth).
SendCertificateChain bool
// TokenFilePath is the path to the Kubernetes service account token file
// for Auth=AuthEntraMSI (Workload Identity).
TokenFilePath string
// ConnectTimeout is the maximum time to wait for the initial connection.
// Defaults to 30s when zero.
ConnectTimeout time.Duration
// ApplicationName is shown in sys.dm_exec_sessions.program_name.
// Defaults to "gosmo".
ApplicationName string
// MaxOpenConns is the maximum number of open connections in the pool.
// 0 means unlimited.
MaxOpenConns int
// MaxIdleConns is the maximum number of idle connections kept in the pool.
// Defaults to 2.
MaxIdleConns int
// ConnMaxLifetime is the maximum lifetime of a pooled connection.
// 0 means unlimited.
ConnMaxLifetime time.Duration
// SessionInitSQL is T-SQL executed on every pooled connection right
// after it is reset, before the first query runs on it. Use it to apply
// SET options that must hold for the whole session (the equivalent of
// SSMS's Query Execution options), e.g. "SET ARITHABORT ON; SET
// ANSI_NULLS ON". Leave empty for driver defaults.
SessionInitSQL string
}
ConnectionOptions holds every parameter needed to open a connection.
Authentication quick guide:
SQL Server login:
Auth: AuthSQLServer, User: "sa", Password: "..."
Windows / Kerberos (on-premises, domain-joined host):
Auth: AuthWindows (no User/Password needed)
On Linux/macOS this uses Kerberos; run "kinit" first for single sign-on, or set the Kerberos field for a keytab, realm, or custom krb5.conf.
Azure Managed Identity (system-assigned):
Auth: AuthEntraMSI, Server: "myserver.database.windows.net"
Azure Managed Identity (user-assigned):
Auth: AuthEntraMSI, ClientID: "<managed-identity-client-id>"
Service Principal (client secret):
Auth: AuthEntraServicePrincipal User: "<app-client-id>[@<tenant-id>]", Password: "<client-secret>" TenantID: "<tenant-id>"
Service Principal (certificate):
Auth: AuthEntraServicePrincipal User: "<app-client-id>[@<tenant-id>]", ClientCertPath: "/path/to/cert.pem"
Default credential chain (env vars -> MSI -> AzCLI):
Auth: AuthEntraDefault
Azure CLI credential (az login):
Auth: AuthEntraAzCLI
type CreateDatabaseOptions ¶
type CreateDatabaseOptions struct {
Collation string
RecoveryModel RecoveryModel
CompatLevel CompatibilityLevel
// PrimaryFile and LogFile customize the database's initial data and
// log file (name, path, size, growth, max size) via CREATE DATABASE's
// ON PRIMARY/LOG ON clauses. Leaving either nil lets the server place
// that file at its own default path/size, exactly like CreateDatabase
// with a zero-valued CreateDatabaseOptions always has. FileGroup is
// ignored on both (PrimaryFile is always PRIMARY; LogFile has none) —
// additional filegroups and files are added after creation via
// AddFileGroupContext/AddFileContext, not here.
PrimaryFile *DatabaseFileSpec
LogFile *DatabaseFileSpec
}
CreateDatabaseOptions holds optional parameters for CreateDatabase.
type CreateIndexRequest ¶
type CreateIndexRequest struct {
Name string
Type IndexType
IsUnique bool
KeyColumns []IndexColumnDef
IncludedColumns []string
FilterDefinition string
FillFactor int
Online bool
SortInTempDB bool
}
CreateIndexRequest describes a new index to create.
type CreateJobRequest ¶
type CreateJobRequest struct {
Name string
Description string
// Category defaults to [Uncategorized (Local)] when empty.
Category string
OwnerLogin string
Enabled bool
}
CreateJobRequest describes a new SQL Server Agent job.
type CreateLoginOptions ¶
CreateLoginOptions holds optional parameters for CreateLogin.
type CreatePartitionFunctionRequest ¶
type CreatePartitionFunctionRequest struct {
Name string
InputType DataType
IsRight bool
Boundaries []string // literal boundary values, e.g. {"100","200","300"}
}
CreatePartitionFunctionRequest describes a partition function to create.
type CreateSequenceRequest ¶
type CreateSequenceRequest struct {
Schema string
Name string
DataType DataType // defaults to bigint
StartValue int64
Increment int64
MinValue *int64
MaxValue *int64
Cycle bool
Cache *int // nil = no cache; 0 = NO CACHE; >0 = cache size
}
CreateSequenceRequest describes a new sequence.
type CreateTableRequest ¶
type CreateTableRequest struct {
Schema string
Name string
Columns []ColumnDefinition
}
CreateTableRequest describes a table to be created.
type Credential ¶ added in v0.0.4
Credential mirrors a row from sys.credentials — used to populate a Login's "Map to credential" dropdown.
type DataType ¶
type DataType string
DataType mirrors SQL Server column data types.
const ( DataTypeBigInt DataType = "bigint" DataTypeBinary DataType = "binary" DataTypeBit DataType = "bit" DataTypeChar DataType = "char" DataTypeDate DataType = "date" DataTypeDatetime DataType = "datetime" DataTypeDatetime2 DataType = "datetime2" DataTypeDatetimeOffset DataType = "datetimeoffset" DataTypeDecimal DataType = "decimal" DataTypeFloat DataType = "float" DataTypeGeography DataType = "geography" DataTypeGeometry DataType = "geometry" DataTypeHierarchyID DataType = "hierarchyid" DataTypeImage DataType = "image" DataTypeInt DataType = "int" DataTypeMoney DataType = "money" DataTypeNChar DataType = "nchar" DataTypeNText DataType = "ntext" DataTypeNumeric DataType = "numeric" DataTypeNVarChar DataType = "nvarchar" DataTypeReal DataType = "real" DataTypeRowVersion DataType = "rowversion" DataTypeSmallDatetime DataType = "smalldatetime" DataTypeSmallInt DataType = "smallint" DataTypeSmallMoney DataType = "smallmoney" DataTypeSQLVariant DataType = "sql_variant" DataTypeText DataType = "text" DataTypeTime DataType = "time" DataTypeTinyInt DataType = "tinyint" DataTypeUniqueIdentifier DataType = "uniqueidentifier" DataTypeVarBinary DataType = "varbinary" DataTypeVarChar DataType = "varchar" DataTypeXML DataType = "xml" )
type Database ¶
type Database struct {
// contains filtered or unexported fields
}
Database mirrors Microsoft.SqlServer.Management.Smo.Database.
func (*Database) ActualPlan ¶ added in v0.0.4
func (d *Database) ActualPlan(sql string) (*ExecutionPlan, error)
ActualPlan executes sql and captures its actual execution plan (SET STATISTICS XML ON) — SSMS's "Include Actual Execution Plan". Unlike EstimatedPlan, this runs the statement.
func (*Database) ActualPlanContext ¶ added in v0.0.4
ActualPlanContext is the context-aware variant of ActualPlan.
func (*Database) AddExtendedProperty ¶
func (d *Database) AddExtendedProperty(name, value string, level ExtendedPropertyLevel) error
AddExtendedProperty adds a new extended property on an object. Fails if a property with this name already exists at this level — see SetExtendedProperty to update one.
func (*Database) AddExtendedPropertyContext ¶ added in v0.0.4
func (d *Database) AddExtendedPropertyContext(ctx context.Context, name, value string, level ExtendedPropertyLevel) error
AddExtendedPropertyContext is the context-aware variant of AddExtendedProperty.
func (*Database) AddFile ¶ added in v0.0.4
func (d *Database) AddFile(spec DatabaseFileSpec) error
AddFile adds a new data or log file to the database.
func (*Database) AddFileContext ¶ added in v0.0.4
func (d *Database) AddFileContext(ctx context.Context, spec DatabaseFileSpec) error
AddFileContext is the context-aware variant of AddFile.
func (*Database) AddFileGroup ¶ added in v0.0.4
AddFileGroup adds a new (empty) filegroup to the database.
func (*Database) AddFileGroupContext ¶ added in v0.0.4
AddFileGroupContext is the context-aware variant of AddFileGroup.
func (*Database) AddRoleMember ¶
AddRoleMember adds a user to a database role.
func (*Database) AddRoleMemberContext ¶
AddRoleMemberContext is the context-aware variant.
func (*Database) AlterFile ¶ added in v0.0.4
func (d *Database) AlterFile(name string, m FileModify) error
AlterFile changes an existing file's name, size, growth, or max size.
func (*Database) AlterFileContext ¶ added in v0.0.4
AlterFileContext is the context-aware variant of AlterFile.
func (*Database) BulkInsert ¶ added in v0.0.4
BulkInsert streams rows into a table using SQL Server's TDS bulk-copy protocol — the same fast path bcp and SSMS "Import Data" use, far faster than row-by-row INSERTs. It returns the number of rows copied.
rows yields one []any per row, its values ordered to match bc.Columns; a nil element becomes SQL NULL. Yielding a non-nil error aborts the load and that error is returned (wrapped), so a streaming source such as a CSV reader can surface a read failure. Use SliceRows for an in-memory slice.
func (*Database) BulkInsertContext ¶ added in v0.0.4
func (d *Database) BulkInsertContext(ctx context.Context, bc BulkCopy, rows iter.Seq2[[]any, error]) (int64, error)
BulkInsertContext is the context-aware variant of BulkInsert. Cancelling ctx stops the load; the count of rows copied before cancellation is returned alongside the error.
func (*Database) Catalog ¶ added in v0.0.5
Catalog returns a bulk snapshot of every user table and view in the database, each with its columns, sorted by schema then name.
func (*Database) CatalogContext ¶ added in v0.0.5
CatalogContext is the context-aware variant of Catalog.
func (*Database) ChangeTracking ¶ added in v0.0.4
func (d *Database) ChangeTracking() (*ChangeTrackingInfo, error)
ChangeTracking returns the database's change tracking settings. Enabled is false (with the rest zero-valued) when change tracking has never been turned on for this database — there's simply no row for it in sys.change_tracking_databases, not an error.
func (*Database) ChangeTrackingContext ¶ added in v0.0.4
func (d *Database) ChangeTrackingContext(ctx context.Context) (*ChangeTrackingInfo, error)
ChangeTrackingContext is the context-aware variant of ChangeTracking.
func (*Database) ClearQueryStore ¶ added in v0.0.5
ClearQueryStore discards all captured Query Store data (SSMS's "Clear Query Store" action) without changing its configuration.
func (*Database) ClearQueryStoreContext ¶ added in v0.0.5
ClearQueryStoreContext is the context-aware variant of ClearQueryStore.
func (*Database) ColumnEncryptionKeySeq ¶ added in v0.0.5
func (d *Database) ColumnEncryptionKeySeq() iter.Seq2[*ColumnEncryptionKey, error]
ColumnEncryptionKeySeq returns an iterator over all column encryption keys in the database.
func (*Database) ColumnEncryptionKeys ¶
func (d *Database) ColumnEncryptionKeys() ([]*ColumnEncryptionKey, error)
ColumnEncryptionKeys returns all column encryption keys in the database.
func (*Database) ColumnEncryptionKeysContext ¶ added in v0.0.5
func (d *Database) ColumnEncryptionKeysContext(ctx context.Context) ([]*ColumnEncryptionKey, error)
ColumnEncryptionKeysContext is the context-aware variant of ColumnEncryptionKeys.
func (*Database) ColumnMasterKeySeq ¶ added in v0.0.5
func (d *Database) ColumnMasterKeySeq() iter.Seq2[*ColumnMasterKey, error]
ColumnMasterKeySeq returns an iterator over all column master keys in the database.
func (*Database) ColumnMasterKeys ¶
func (d *Database) ColumnMasterKeys() ([]*ColumnMasterKey, error)
ColumnMasterKeys returns all column master keys in the database.
func (*Database) ColumnMasterKeysContext ¶ added in v0.0.5
func (d *Database) ColumnMasterKeysContext(ctx context.Context) ([]*ColumnMasterKey, error)
ColumnMasterKeysContext is the context-aware variant of ColumnMasterKeys.
func (*Database) CompatibilityLevel ¶
func (d *Database) CompatibilityLevel() CompatibilityLevel
CompatibilityLevel returns the database compatibility level.
func (*Database) CreateColumnMasterKey ¶
func (d *Database) CreateColumnMasterKey(name, keyStoreProvider, keyPath string, enclaveComputations bool) error
CreateColumnMasterKey creates a column master key metadata entry. Note: the actual key must already exist in the key store.
func (*Database) CreateColumnMasterKeyContext ¶ added in v0.0.5
func (d *Database) CreateColumnMasterKeyContext(ctx context.Context, name, keyStoreProvider, keyPath string, enclaveComputations bool) error
CreateColumnMasterKeyContext is the context-aware variant of CreateColumnMasterKey.
func (*Database) CreateDate ¶
CreateDate returns the date the database was created.
func (*Database) CreatePartitionFunction ¶
func (d *Database) CreatePartitionFunction(req CreatePartitionFunctionRequest) error
CreatePartitionFunction creates a partition function.
func (*Database) CreatePartitionFunctionContext ¶ added in v0.0.5
func (d *Database) CreatePartitionFunctionContext(ctx context.Context, req CreatePartitionFunctionRequest) error
CreatePartitionFunctionContext is the context-aware variant of CreatePartitionFunction.
func (*Database) CreatePartitionScheme ¶
CreatePartitionScheme creates a partition scheme backed by a partition function.
func (*Database) CreatePartitionSchemeContext ¶ added in v0.0.5
func (d *Database) CreatePartitionSchemeContext(ctx context.Context, name, functionName string, fileGroups []string) error
CreatePartitionSchemeContext is the context-aware variant of CreatePartitionScheme.
func (*Database) CreateSchema ¶
CreateSchema creates a new schema in the database.
func (*Database) CreateSchemaContext ¶
CreateSchemaContext is the context-aware variant of CreateSchema.
func (*Database) CreateSequence ¶
func (d *Database) CreateSequence(req CreateSequenceRequest) error
CreateSequence creates a new sequence in the database.
func (*Database) CreateSequenceContext ¶ added in v0.0.5
func (d *Database) CreateSequenceContext(ctx context.Context, req CreateSequenceRequest) error
CreateSequenceContext is the context-aware variant of CreateSequence.
func (*Database) CreateStoredProcedure ¶
CreateStoredProcedure creates (or replaces) a stored procedure. schema may be empty (defaults to dbo). body is the raw T-SQL after AS.
func (*Database) CreateStoredProcedureContext ¶
func (d *Database) CreateStoredProcedureContext(ctx context.Context, schema, name, body string) error
CreateStoredProcedureContext is the context-aware variant.
func (*Database) CreateSynonym ¶
CreateSynonym creates a synonym for a base object. baseObject should be the fully qualified name, e.g. "[OtherDB].[dbo].[MyTable]".
func (*Database) CreateSynonymContext ¶ added in v0.0.5
CreateSynonymContext is the context-aware variant of CreateSynonym.
func (*Database) CreateTable ¶
func (d *Database) CreateTable(req CreateTableRequest) error
CreateTable creates a table from a CreateTableRequest.
func (*Database) CreateTableContext ¶
func (d *Database) CreateTableContext(ctx context.Context, req CreateTableRequest) error
CreateTableContext is the context-aware variant of CreateTable.
func (*Database) CreateUser ¶
CreateUser creates a database user mapped to a login.
func (*Database) CreateUserContext ¶
func (d *Database) CreateUserContext(ctx context.Context, userName, loginName, defaultSchema string) error
CreateUserContext is the context-aware variant of CreateUser.
func (*Database) DatabaseExtendedProperties ¶
func (d *Database) DatabaseExtendedProperties() ([]*ExtendedProperty, error)
DatabaseExtendedProperties returns all extended properties at database level.
func (*Database) DatabaseExtendedPropertiesContext ¶ added in v0.0.5
func (d *Database) DatabaseExtendedPropertiesContext(ctx context.Context) ([]*ExtendedProperty, error)
DatabaseExtendedPropertiesContext is the context-aware variant of DatabaseExtendedProperties.
func (*Database) DatabaseExtendedPropertySeq ¶ added in v0.0.5
func (d *Database) DatabaseExtendedPropertySeq() iter.Seq2[*ExtendedProperty, error]
DatabaseExtendedPropertySeq returns an iterator over all extended properties at database level.
func (*Database) DatabasePermissionSeq ¶ added in v0.0.4
func (d *Database) DatabasePermissionSeq() iter.Seq2[*DatabasePermissionEntry, error]
DatabasePermissionSeq returns an iterator over all database-scoped GRANT/DENY entries.
func (*Database) DatabasePermissions ¶ added in v0.0.4
func (d *Database) DatabasePermissions() ([]*DatabasePermissionEntry, error)
DatabasePermissions returns every database-scoped GRANT/DENY entry — permissions granted on the database itself, not on a specific object within it (see Permissions for that).
func (*Database) DatabasePermissionsContext ¶ added in v0.0.4
func (d *Database) DatabasePermissionsContext(ctx context.Context) ([]*DatabasePermissionEntry, error)
DatabasePermissionsContext is the context-aware variant of DatabasePermissions.
func (*Database) DatabaseRoles ¶
func (d *Database) DatabaseRoles() ([]*DatabaseRole, error)
DatabaseRoles returns all roles defined in the database.
func (*Database) DatabaseRolesContext ¶
func (d *Database) DatabaseRolesContext(ctx context.Context) ([]*DatabaseRole, error)
DatabaseRolesContext is the context-aware variant of DatabaseRoles.
func (*Database) DatabaseScopedConfigs ¶ added in v0.0.5
func (d *Database) DatabaseScopedConfigs() ([]*DatabaseScopedConfig, error)
DatabaseScopedConfigs returns every database scoped configuration option.
func (*Database) DatabaseScopedConfigsContext ¶ added in v0.0.5
func (d *Database) DatabaseScopedConfigsContext(ctx context.Context) ([]*DatabaseScopedConfig, error)
DatabaseScopedConfigsContext is the context-aware variant of DatabaseScopedConfigs.
func (*Database) DenyDatabasePermission ¶ added in v0.0.4
DenyDatabasePermission denies a database-level permission to principal.
func (*Database) DenyDatabasePermissionContext ¶ added in v0.0.4
func (d *Database) DenyDatabasePermissionContext(ctx context.Context, permission, principal string) error
DenyDatabasePermissionContext is the context-aware variant of DenyDatabasePermission.
func (*Database) DenyPermission ¶ added in v0.0.4
func (d *Database) DenyPermission(schema, name string, permission ObjectPermission, principal string) error
DenyPermission denies permission on schema.name to principal.
func (*Database) DenyPermissionContext ¶ added in v0.0.4
func (d *Database) DenyPermissionContext(ctx context.Context, schema, name string, permission ObjectPermission, principal string) error
DenyPermissionContext is the context-aware variant of DenyPermission.
func (*Database) DenySchemaPermission ¶ added in v0.0.5
func (d *Database) DenySchemaPermission(schemaName string, permission ObjectPermission, principal string) error
DenySchemaPermission denies permission on a schema to principal.
func (*Database) DenySchemaPermissionContext ¶ added in v0.0.5
func (d *Database) DenySchemaPermissionContext(ctx context.Context, schemaName string, permission ObjectPermission, principal string) error
DenySchemaPermissionContext is the context-aware variant of DenySchemaPermission.
func (*Database) Dependencies ¶ added in v0.0.4
func (d *Database) Dependencies(schema, name string) ([]*Dependency, error)
Dependencies returns the objects that schema.name's own definition references — SSMS's "Object Dependencies > Objects on which ... depends".
func (*Database) DependenciesContext ¶ added in v0.0.4
func (d *Database) DependenciesContext(ctx context.Context, schema, name string) ([]*Dependency, error)
DependenciesContext is the context-aware variant of Dependencies.
func (*Database) Dependents ¶ added in v0.0.4
func (d *Database) Dependents(schema, name string) ([]*Dependency, error)
Dependents returns the objects whose own definition references schema.name — SSMS's "Object Dependencies > Objects that depend on ...".
func (*Database) DependentsContext ¶ added in v0.0.4
func (d *Database) DependentsContext(ctx context.Context, schema, name string) ([]*Dependency, error)
DependentsContext is the context-aware variant of Dependents.
func (*Database) DropExtendedProperty ¶
func (d *Database) DropExtendedProperty(name string, level ExtendedPropertyLevel) error
DropExtendedProperty drops an extended property from an object.
func (*Database) DropExtendedPropertyContext ¶ added in v0.0.4
func (d *Database) DropExtendedPropertyContext(ctx context.Context, name string, level ExtendedPropertyLevel) error
DropExtendedPropertyContext is the context-aware variant of DropExtendedProperty.
func (*Database) DropSchema ¶
DropSchema drops a schema from the database.
func (*Database) DropSchemaContext ¶
DropSchemaContext is the context-aware variant of DropSchema.
func (*Database) DropStoredProcedure ¶
DropStoredProcedure drops a stored procedure.
func (*Database) DropStoredProcedureContext ¶
DropStoredProcedureContext is the context-aware variant.
func (*Database) DropTable ¶
DropTable drops a table. When cascade=true it first drops all incoming foreign-key constraints.
func (*Database) DropTableContext ¶
DropTableContext is the context-aware variant of DropTable.
func (*Database) DropUserContext ¶
DropUserContext is the context-aware variant of DropUser.
func (*Database) EstimatedPlan ¶ added in v0.0.4
func (d *Database) EstimatedPlan(sql string) (*ExecutionPlan, error)
EstimatedPlan captures sql's estimated execution plan without running it (SET SHOWPLAN_XML ON) — SSMS's "Display Estimated Execution Plan".
func (*Database) EstimatedPlanContext ¶ added in v0.0.4
func (d *Database) EstimatedPlanContext(ctx context.Context, sqlText string) (*ExecutionPlan, error)
EstimatedPlanContext is the context-aware variant of EstimatedPlan.
func (*Database) ExecProc ¶ added in v0.0.4
func (d *Database) ExecProc(schema, name string, params ...ProcParam) (ProcResult, error)
ExecProc executes a stored procedure by schema and name, binding the given parameters and capturing its return status. Output parameter values are written to the pointers passed to Out / InOut. Any result sets the procedure emits are discarded; use the query methods when you need the rows.
func (*Database) ExecProcContext ¶ added in v0.0.4
func (d *Database) ExecProcContext(ctx context.Context, schema, name string, params ...ProcParam) (ProcResult, error)
ExecProcContext is the context-aware variant of ExecProc.
func (*Database) ExtendedProperties ¶
func (d *Database) ExtendedProperties(level ExtendedPropertyLevel) ([]*ExtendedProperty, error)
ExtendedProperties returns the extended properties for a specific object.
func (*Database) ExtendedPropertiesContext ¶ added in v0.0.5
func (d *Database) ExtendedPropertiesContext(ctx context.Context, level ExtendedPropertyLevel) ([]*ExtendedProperty, error)
ExtendedPropertiesContext is the context-aware variant of ExtendedProperties.
func (*Database) FileGroups ¶
FileGroups returns all filegroups and their files.
func (*Database) FileGroupsContext ¶
FileGroupsContext is the context-aware variant of FileGroups.
func (*Database) FileSeq ¶ added in v0.0.4
func (d *Database) FileSeq() iter.Seq2[*DatabaseFileInfo, error]
FileSeq returns an iterator over every file in the database.
func (*Database) Files ¶ added in v0.0.4
func (d *Database) Files() ([]*DatabaseFileInfo, error)
Files returns every file in the database, data and log alike.
func (*Database) FilesContext ¶ added in v0.0.4
func (d *Database) FilesContext(ctx context.Context) ([]*DatabaseFileInfo, error)
FilesContext is the context-aware variant of Files.
func (*Database) FlushQueryStore ¶ added in v0.0.5
FlushQueryStore forces Query Store to persist its in-memory data to disk immediately (SSMS's "Flush Data" action), via sys.sp_query_store_flush_db.
func (*Database) FlushQueryStoreContext ¶ added in v0.0.5
FlushQueryStoreContext is the context-aware variant of FlushQueryStore.
func (*Database) GrantDatabasePermission ¶ added in v0.0.4
GrantDatabasePermission grants a database-level permission to principal.
func (*Database) GrantDatabasePermissionContext ¶ added in v0.0.4
func (d *Database) GrantDatabasePermissionContext(ctx context.Context, permission, principal string) error
GrantDatabasePermissionContext is the context-aware variant of GrantDatabasePermission.
func (*Database) GrantPermission ¶ added in v0.0.4
func (d *Database) GrantPermission(schema, name string, permission ObjectPermission, principal string) error
GrantPermission grants permission on schema.name to principal.
func (*Database) GrantPermissionContext ¶ added in v0.0.4
func (d *Database) GrantPermissionContext(ctx context.Context, schema, name string, permission ObjectPermission, principal string) error
GrantPermissionContext is the context-aware variant of GrantPermission.
func (*Database) GrantSchemaPermission ¶ added in v0.0.5
func (d *Database) GrantSchemaPermission(schemaName string, permission ObjectPermission, principal string) error
GrantSchemaPermission grants permission on a schema to principal.
func (*Database) GrantSchemaPermissionContext ¶ added in v0.0.5
func (d *Database) GrantSchemaPermissionContext(ctx context.Context, schemaName string, permission ObjectPermission, principal string) error
GrantSchemaPermissionContext is the context-aware variant of GrantSchemaPermission.
func (*Database) IsReadOnly ¶
IsReadOnly reports whether the database is set to read-only.
func (*Database) IsSystem ¶ added in v0.0.4
IsSystem reports whether this is one of SQL Server's four built-in system databases (master, tempdb, model, msdb), identified by their permanently reserved database_id (1-4) rather than by name.
func (*Database) Options ¶ added in v0.0.4
func (d *Database) Options() (*DatabaseOptions, error)
Options returns the database's ALTER DATABASE SET options.
func (*Database) OptionsContext ¶ added in v0.0.4
func (d *Database) OptionsContext(ctx context.Context) (*DatabaseOptions, error)
OptionsContext is the context-aware variant of Options. Queried against sys.databases at server scope (like Server.DatabaseByNameContext), not through d.query — these are catalog-view columns, not per-database data.
func (*Database) PartitionFunctionSeq ¶ added in v0.0.5
func (d *Database) PartitionFunctionSeq() iter.Seq2[*PartitionFunction, error]
PartitionFunctionSeq returns an iterator over all partition functions in the database.
func (*Database) PartitionFunctions ¶
func (d *Database) PartitionFunctions() ([]*PartitionFunction, error)
PartitionFunctions returns all partition functions in the database.
func (*Database) PartitionFunctionsContext ¶ added in v0.0.5
func (d *Database) PartitionFunctionsContext(ctx context.Context) ([]*PartitionFunction, error)
PartitionFunctionsContext is the context-aware variant of PartitionFunctions.
func (*Database) PartitionSchemeSeq ¶ added in v0.0.5
func (d *Database) PartitionSchemeSeq() iter.Seq2[*PartitionScheme, error]
PartitionSchemeSeq returns an iterator over all partition schemes in the database.
func (*Database) PartitionSchemes ¶
func (d *Database) PartitionSchemes() ([]*PartitionScheme, error)
PartitionSchemes returns all partition schemes in the database.
func (*Database) PartitionSchemesContext ¶ added in v0.0.5
func (d *Database) PartitionSchemesContext(ctx context.Context) ([]*PartitionScheme, error)
PartitionSchemesContext is the context-aware variant of PartitionSchemes.
func (*Database) Permissions ¶ added in v0.0.4
func (d *Database) Permissions(schema, name string) ([]*PermissionEntry, error)
Permissions returns the GRANT/DENY entries recorded for schema.name — SSMS's object Properties > Permissions page.
func (*Database) PermissionsContext ¶ added in v0.0.4
func (d *Database) PermissionsContext(ctx context.Context, schema, name string) ([]*PermissionEntry, error)
PermissionsContext is the context-aware variant of Permissions.
func (*Database) PermissionsForPrincipal ¶ added in v0.0.5
func (d *Database) PermissionsForPrincipal(principal string) ([]*PrincipalSecurable, error)
PermissionsForPrincipal returns every explicit GRANT/DENY entry recorded for principal across database-, schema-, and table/view-scoped securables. Stored procedure and function securables are deliberately excluded — they need their own permission catalog (EXECUTE-centric, distinct from the table/view one) not built yet; see SchemaPermissionNames/ ObjectPermissionNames for the catalogs this DOES cover.
func (*Database) PermissionsForPrincipalContext ¶ added in v0.0.5
func (d *Database) PermissionsForPrincipalContext(ctx context.Context, principal string) ([]*PrincipalSecurable, error)
PermissionsForPrincipalContext is the context-aware variant of PermissionsForPrincipal.
func (*Database) QueryStore ¶ added in v0.0.5
func (d *Database) QueryStore() (*QueryStoreInfo, error)
QueryStore returns the database's Query Store configuration and state.
func (*Database) QueryStoreContext ¶ added in v0.0.5
func (d *Database) QueryStoreContext(ctx context.Context) (*QueryStoreInfo, error)
QueryStoreContext is the context-aware variant of QueryStore.
func (*Database) RecoveryModel ¶
func (d *Database) RecoveryModel() RecoveryModel
RecoveryModel returns the database recovery model.
func (*Database) RemoveFile ¶ added in v0.0.4
RemoveFile drops a file from the database. The file must be empty (0 bytes of used space) — SQL Server itself enforces this, not gosmo.
func (*Database) RemoveFileContext ¶ added in v0.0.4
RemoveFileContext is the context-aware variant of RemoveFile.
func (*Database) RemoveFileGroup ¶ added in v0.0.4
RemoveFileGroup drops a filegroup. It must be empty (no files) — SQL Server itself enforces this, not gosmo.
func (*Database) RemoveFileGroupContext ¶ added in v0.0.4
RemoveFileGroupContext is the context-aware variant of RemoveFileGroup.
func (*Database) RemoveRoleMember ¶
RemoveRoleMember removes a user from a database role.
func (*Database) RemoveRoleMemberContext ¶
RemoveRoleMemberContext is the context-aware variant.
func (*Database) RenameTable ¶
RenameTable renames a table using sp_rename.
func (*Database) RenameTableContext ¶
RenameTableContext is the context-aware variant of RenameTable.
func (*Database) RevokeDatabasePermission ¶ added in v0.0.4
RevokeDatabasePermission revokes a database-level permission from principal.
func (*Database) RevokeDatabasePermissionContext ¶ added in v0.0.4
func (d *Database) RevokeDatabasePermissionContext(ctx context.Context, permission, principal string) error
RevokeDatabasePermissionContext is the context-aware variant of RevokeDatabasePermission.
func (*Database) RevokePermission ¶ added in v0.0.4
func (d *Database) RevokePermission(schema, name string, permission ObjectPermission, principal string) error
RevokePermission revokes permission on schema.name from principal.
func (*Database) RevokePermissionContext ¶ added in v0.0.4
func (d *Database) RevokePermissionContext(ctx context.Context, schema, name string, permission ObjectPermission, principal string) error
RevokePermissionContext is the context-aware variant of RevokePermission.
func (*Database) RevokeSchemaPermission ¶ added in v0.0.5
func (d *Database) RevokeSchemaPermission(schemaName string, permission ObjectPermission, principal string) error
RevokeSchemaPermission revokes permission on a schema from principal.
func (*Database) RevokeSchemaPermissionContext ¶ added in v0.0.5
func (d *Database) RevokeSchemaPermissionContext(ctx context.Context, schemaName string, permission ObjectPermission, principal string) error
RevokeSchemaPermissionContext is the context-aware variant of RevokeSchemaPermission.
func (*Database) RoleByName ¶ added in v0.0.5
func (d *Database) RoleByName(name string) (*DatabaseRole, error)
RoleByName returns a single database role by name, with its principal detail (SID, create/modify dates) filled in — DatabaseRolesContext leaves these out since Object Explorer's tree listing never needs them.
func (*Database) RoleByNameContext ¶ added in v0.0.5
RoleByNameContext is the context-aware variant of RoleByName.
func (*Database) RoleMembers ¶ added in v0.0.5
func (d *Database) RoleMembers(roleName string) ([]*RoleMember, error)
RoleMembers returns the direct members of a database role, with each member's principal type — DatabaseRolesContext/RoleByNameContext only return member names, concatenated, with no type.
func (*Database) RoleMembersContext ¶ added in v0.0.5
RoleMembersContext is the context-aware variant of RoleMembers.
func (*Database) SchemaPermissions ¶ added in v0.0.5
func (d *Database) SchemaPermissions(schemaName string) ([]*PermissionEntry, error)
SchemaPermissions returns the GRANT/DENY entries recorded on SCHEMA::schemaName — SSMS's Schema Properties > Permissions page. This is the schema-scoped analog of Permissions: that one resolves its securable via OBJECT_ID(schema.name), which only works for table/view securables — a schema has no OBJECT_ID, so it needs its own query keyed on SCHEMA_ID instead.
func (*Database) SchemaPermissionsContext ¶ added in v0.0.5
func (d *Database) SchemaPermissionsContext(ctx context.Context, schemaName string) ([]*PermissionEntry, error)
SchemaPermissionsContext is the context-aware variant of SchemaPermissions.
func (*Database) SchemasContext ¶
SchemasContext is the context-aware variant of Schemas.
func (*Database) Search ¶ added in v0.0.4
func (d *Database) Search(pattern string) ([]*SearchResult, error)
Search finds tables, views, stored procedures, functions, and triggers whose name contains pattern (case-insensitivity follows the database's own collation), matching SSMS's Object Explorer Details search box.
func (*Database) SearchContext ¶ added in v0.0.4
SearchContext is the context-aware variant of Search.
func (*Database) SecurityPolicies ¶
func (d *Database) SecurityPolicies() ([]*SecurityPolicy, error)
SecurityPolicies returns all security policies in the database.
func (*Database) SecurityPoliciesContext ¶ added in v0.0.5
func (d *Database) SecurityPoliciesContext(ctx context.Context) ([]*SecurityPolicy, error)
SecurityPoliciesContext is the context-aware variant of SecurityPolicies.
func (*Database) SecurityPolicySeq ¶ added in v0.0.5
func (d *Database) SecurityPolicySeq() iter.Seq2[*SecurityPolicy, error]
SecurityPolicySeq returns an iterator over all security policies in the database.
func (*Database) SequenceSeq ¶
SequenceSeq returns an iterator over all sequences in the database.
func (*Database) SequencesContext ¶ added in v0.0.4
SequencesContext is the context-aware variant of Sequences.
func (*Database) SetChangeTracking ¶ added in v0.0.4
func (d *Database) SetChangeTracking(info ChangeTrackingInfo) error
SetChangeTracking enables, reconfigures, or disables change tracking for the database. info.RetentionUnit defaults to "DAYS" when empty.
func (*Database) SetChangeTrackingContext ¶ added in v0.0.4
func (d *Database) SetChangeTrackingContext(ctx context.Context, info ChangeTrackingInfo) error
SetChangeTrackingContext is the context-aware variant of SetChangeTracking.
func (*Database) SetCompatibilityLevel ¶
func (d *Database) SetCompatibilityLevel(level CompatibilityLevel) error
SetCompatibilityLevel changes the database compatibility level.
func (*Database) SetCompatibilityLevelContext ¶
func (d *Database) SetCompatibilityLevelContext(ctx context.Context, level CompatibilityLevel) error
SetCompatibilityLevelContext is the context-aware variant.
func (*Database) SetDatabaseOption ¶ added in v0.0.4
func (d *Database) SetDatabaseOption(opt DatabaseOption, value string) error
SetDatabaseOption changes one ALTER DATABASE ... SET option. value is the keyword or clause that follows the option name verbatim, e.g. "ON", "OFF", "CHECKSUM", "PARTIAL", "SNAPSHOT_ISOLATION" — see SQL Server's ALTER DATABASE SET reference for each option's accepted values.
func (*Database) SetDatabaseOptionContext ¶ added in v0.0.4
func (d *Database) SetDatabaseOptionContext(ctx context.Context, opt DatabaseOption, value string) error
SetDatabaseOptionContext is the context-aware variant of SetDatabaseOption.
func (*Database) SetDatabaseScopedConfig ¶ added in v0.0.5
SetDatabaseScopedConfig changes one database scoped configuration option. value is the keyword or literal that follows the option name verbatim, e.g. "ON", "OFF", "4" — see ALTER DATABASE SCOPED CONFIGURATION's reference for each option's accepted values. forSecondary applies the change to readable secondary replicas (FOR SECONDARY) instead of the primary.
func (*Database) SetDatabaseScopedConfigContext ¶ added in v0.0.5
func (d *Database) SetDatabaseScopedConfigContext(ctx context.Context, name, value string, forSecondary bool) error
SetDatabaseScopedConfigContext is the context-aware variant of SetDatabaseScopedConfig. Unlike ALTER DATABASE SET options (SetDatabaseOptionContext), ALTER DATABASE SCOPED CONFIGURATION is scoped to whichever database is current, so this runs through d.exec (USE first), not d.server.execContext.
func (*Database) SetDefaultFileGroup ¶ added in v0.0.4
SetDefaultFileGroup marks a filegroup as the database's default.
func (*Database) SetDefaultFileGroupContext ¶ added in v0.0.4
SetDefaultFileGroupContext is the context-aware variant of SetDefaultFileGroup.
func (*Database) SetExtendedProperty ¶ added in v0.0.4
func (d *Database) SetExtendedProperty(name, value string, level ExtendedPropertyLevel) error
SetExtendedProperty updates the value of an existing extended property. Fails if no property with this name exists at this level — see AddExtendedProperty to create one.
func (*Database) SetExtendedPropertyContext ¶ added in v0.0.4
func (d *Database) SetExtendedPropertyContext(ctx context.Context, name, value string, level ExtendedPropertyLevel) error
SetExtendedPropertyContext is the context-aware variant of SetExtendedProperty.
func (*Database) SetFileGroupReadOnly ¶ added in v0.0.4
SetFileGroupReadOnly sets or clears a filegroup's read-only flag.
func (*Database) SetFileGroupReadOnlyContext ¶ added in v0.0.4
func (d *Database) SetFileGroupReadOnlyContext(ctx context.Context, name string, readOnly bool) error
SetFileGroupReadOnlyContext is the context-aware variant of SetFileGroupReadOnly.
func (*Database) SetOffline ¶ added in v0.0.5
SetOffline takes the database offline.
func (*Database) SetOfflineContext ¶ added in v0.0.5
SetOfflineContext is the context-aware variant of SetOffline. Existing connections are rolled back immediately, matching SSMS's Object Explorer "Take Database Offline" behavior.
func (*Database) SetOnlineContext ¶ added in v0.0.5
SetOnlineContext is the context-aware variant of SetOnline.
func (*Database) SetOwner ¶ added in v0.0.4
SetOwner transfers database ownership to a new principal.
func (*Database) SetOwnerContext ¶ added in v0.0.4
SetOwnerContext is the context-aware variant of SetOwner.
func (*Database) SetQueryStoreOptions ¶ added in v0.0.5
func (d *Database) SetQueryStoreOptions(opts QueryStoreOptions) error
SetQueryStoreOptions turns Query Store on (reconfiguring it) or off.
func (*Database) SetQueryStoreOptionsContext ¶ added in v0.0.5
func (d *Database) SetQueryStoreOptionsContext(ctx context.Context, opts QueryStoreOptions) error
SetQueryStoreOptionsContext is the context-aware variant of SetQueryStoreOptions. Like SetRecoveryModelContext, this is an ALTER DATABASE statement naming the database explicitly, so it runs through d.server.execContext rather than d.exec.
func (*Database) SetReadOnly ¶
SetReadOnly sets the database to read-only or read-write.
func (*Database) SetReadOnlyContext ¶
SetReadOnlyContext is the context-aware variant.
func (*Database) SetRecoveryModel ¶
func (d *Database) SetRecoveryModel(model RecoveryModel) error
SetRecoveryModel changes the database recovery model.
func (*Database) SetRecoveryModelContext ¶
func (d *Database) SetRecoveryModelContext(ctx context.Context, model RecoveryModel) error
SetRecoveryModelContext is the context-aware variant.
func (*Database) SetTableChangeTracking ¶ added in v0.0.4
SetTableChangeTracking enables or disables change tracking on one table. trackColumns is ignored when enable is false.
func (*Database) SetTableChangeTrackingContext ¶ added in v0.0.4
func (d *Database) SetTableChangeTrackingContext(ctx context.Context, schema, name string, enable, trackColumns bool) error
SetTableChangeTrackingContext is the context-aware variant of SetTableChangeTracking.
func (*Database) SetUserAccess ¶ added in v0.0.5
SetUserAccess changes the database's user-access mode (MULTI_USER, SINGLE_USER, or RESTRICTED_USER — SSMS's Database Properties > Options "Restrict access" setting). Existing connections that would violate the new mode are rolled back immediately, matching SSMS's own behavior.
func (*Database) SetUserAccessContext ¶ added in v0.0.5
SetUserAccessContext is the context-aware variant of SetUserAccess.
func (*Database) SpaceUsedContext ¶
SpaceUsedContext is the context-aware variant of SpaceUsed.
func (*Database) StoredProcedureSeq ¶
func (d *Database) StoredProcedureSeq() iter.Seq2[*StoredProcedure, error]
StoredProcedureSeq returns an iterator over all stored procedures.
func (*Database) StoredProcedures ¶
func (d *Database) StoredProcedures() ([]*StoredProcedure, error)
StoredProcedures returns all stored procedures in the database.
func (*Database) StoredProceduresContext ¶
func (d *Database) StoredProceduresContext(ctx context.Context) ([]*StoredProcedure, error)
StoredProceduresContext is the context-aware variant of StoredProcedures.
func (*Database) SynonymSeq ¶ added in v0.0.5
SynonymSeq returns an iterator over all synonyms in the database.
func (*Database) SynonymsContext ¶ added in v0.0.4
SynonymsContext is the context-aware variant of Synonyms.
func (*Database) SystemCatalog ¶ added in v0.0.5
SystemCatalog returns a bulk snapshot of every catalog view in the "sys" schema (sys.tables, sys.columns, sys.objects, ...) — see SystemCatalogContext.
func (*Database) SystemCatalogContext ¶ added in v0.0.5
SystemCatalogContext is the context-aware variant of SystemCatalog. The "sys" schema's catalog views are defined identically in every database on a server, so a caller only needs to load this once per connection — any database works equally well as the query target, not just master.
Unlike CatalogContext, this queries sys.all_objects/sys.all_columns rather than sys.objects/sys.columns: the latter two, despite the generic names, only ever surface user-created objects (is_ms_shipped=1 rows are invisible through them) — sys.tables, sys.columns, sys.objects itself, and every other built-in catalog view only show up through the "all_" variants.
func (*Database) SystemFunctionSeq ¶ added in v0.0.5
func (d *Database) SystemFunctionSeq() iter.Seq2[*UserDefinedFunction, error]
SystemFunctionSeq returns an iterator over every system function in the "sys" schema.
func (*Database) SystemFunctions ¶ added in v0.0.5
func (d *Database) SystemFunctions() ([]*UserDefinedFunction, error)
SystemFunctions returns every system function SQL Server ships in the "sys" schema (sys.fn_listextendedproperty, ...) — see SystemFunctionsContext.
func (*Database) SystemFunctionsContext ¶ added in v0.0.5
func (d *Database) SystemFunctionsContext(ctx context.Context) ([]*UserDefinedFunction, error)
SystemFunctionsContext is the context-aware variant of SystemFunctions. Reads sys.all_objects rather than sys.objects for the same reason SystemViewsContext reads sys.all_objects instead of sys.views: shipped objects are invisible through the non-"all_" catalog views. Restricted to the same type set as UserDefinedFunctionsContext ('FN'/'TF'/'IF') — aggregate ('AF') and CLR scalar ('FS') functions are excluded, matching that same scope. The "sys" schema is identical in every database on a server, so this only needs loading once per connection.
func (*Database) SystemStoredProcedureSeq ¶ added in v0.0.5
func (d *Database) SystemStoredProcedureSeq() iter.Seq2[*StoredProcedure, error]
SystemStoredProcedureSeq returns an iterator over every system stored procedure in the "sys" schema.
func (*Database) SystemStoredProcedures ¶ added in v0.0.5
func (d *Database) SystemStoredProcedures() ([]*StoredProcedure, error)
SystemStoredProcedures returns every system stored procedure SQL Server ships in the "sys" schema (sp_help, sp_who, ...) — see SystemStoredProceduresContext.
func (*Database) SystemStoredProceduresContext ¶ added in v0.0.5
func (d *Database) SystemStoredProceduresContext(ctx context.Context) ([]*StoredProcedure, error)
SystemStoredProceduresContext is the context-aware variant of SystemStoredProcedures. Reads sys.all_objects rather than sys.procedures for the same reason SystemViewsContext reads sys.all_objects instead of sys.views: shipped objects are invisible through the non-"all_" catalog views. Restricted to types 'P'/'PC' (SQL/CLR stored procedure), matching what sys.procedures itself documents — extended stored procedures ('X', e.g. xp_cmdshell) are a distinct object kind and excluded. The "sys" schema is identical in every database on a server, so this only needs loading once per connection.
func (*Database) SystemViewSeq ¶ added in v0.0.5
SystemViewSeq returns an iterator over every system catalog view in the "sys" schema.
func (*Database) SystemViews ¶ added in v0.0.5
SystemViews returns every catalog view SQL Server ships in the "sys" schema (sys.tables, sys.columns, sys.objects, ...) — see SystemViewsContext.
func (*Database) SystemViewsContext ¶ added in v0.0.5
SystemViewsContext is the context-aware variant of SystemViews. Unlike Views, this reads sys.all_objects/sys.all_sql_modules rather than sys.views/sys.sql_modules: the "sys." schema's own views are shipped objects (is_ms_shipped=1), invisible through the non-"all_" catalog views — same reasoning as SystemCatalogContext. The "sys" schema's catalog views are defined identically in every database on a server, so a caller only needs to load this once per connection.
func (*Database) TableByName ¶
TableByName returns a single table by schema and name using a direct query.
func (*Database) TableByNameContext ¶
TableByNameContext is the context-aware variant of TableByName.
func (*Database) TableChangeTracking ¶ added in v0.0.4
func (d *Database) TableChangeTracking() ([]*TableChangeTracking, error)
TableChangeTracking returns change tracking state for every user table in the database, whether or not tracking is actually enabled on it.
func (*Database) TableChangeTrackingContext ¶ added in v0.0.4
func (d *Database) TableChangeTrackingContext(ctx context.Context) ([]*TableChangeTracking, error)
TableChangeTrackingContext is the context-aware variant of TableChangeTracking.
func (*Database) TableChangeTrackingSeq ¶ added in v0.0.4
func (d *Database) TableChangeTrackingSeq() iter.Seq2[*TableChangeTracking, error]
TableChangeTrackingSeq returns an iterator over every user table's change tracking state.
func (*Database) TablesBySchema ¶
TablesBySchema returns all tables in a specific schema.
func (*Database) TablesBySchemaContext ¶
TablesBySchemaContext is the context-aware variant of TablesBySchema.
func (*Database) TablesContext ¶
TablesContext is the context-aware variant of Tables.
func (*Database) TriggersContext ¶
TriggersContext is the context-aware variant of Triggers.
func (*Database) UserByName ¶ added in v0.0.5
UserByName returns a single database user by name, with its SID and matching server login (if any) filled in — UsersContext leaves these out since Object Explorer's tree listing never needs them.
func (*Database) UserByNameContext ¶ added in v0.0.5
UserByNameContext is the context-aware variant of UserByName.
func (*Database) UserDefinedFunctions ¶
func (d *Database) UserDefinedFunctions() ([]*UserDefinedFunction, error)
UserDefinedFunctions returns all UDFs in the database.
func (*Database) UserDefinedFunctionsContext ¶
func (d *Database) UserDefinedFunctionsContext(ctx context.Context) ([]*UserDefinedFunction, error)
UserDefinedFunctionsContext is the context-aware variant.
func (*Database) UsersContext ¶
UsersContext is the context-aware variant of Users.
type DatabaseFile ¶
type DatabaseFile struct {
Name string
PhysicalName string
Size int64 // in KB
MaxSize int64 // in KB; -1 = unlimited
GrowthType string // "KB" | "PERCENT"
Growth int64
IsPrimaryFile bool
FileGroupName string
}
DatabaseFile represents a single data or log file.
type DatabaseFileInfo ¶ added in v0.0.4
type DatabaseFileInfo struct {
FileID int
Name string
PhysicalName string
Type string // "ROWS", "LOG", or "FILESTREAM" (sys.database_files.type_desc)
FileGroup string // "" for log files, which don't belong to one
State string // e.g. "ONLINE"
SizeKB int64
MaxSizeKB int64 // -1 = unlimited
GrowthKB int64 // 0 when IsPercentGrowth is true
GrowthPercent int // 0 when IsPercentGrowth is false
IsPercentGrowth bool
}
DatabaseFileInfo describes a single database file, including log files — unlike FileGroups/FileGroupsContext (database.go), which only sees files that belong to a filegroup and so omits the log. Sizes are normalized to KB (FileGroupsContext's MaxSize/Growth fields are not, for backward compatibility with existing callers).
type DatabaseFileSpec ¶ added in v0.0.4
type DatabaseFileSpec struct {
Name string
FileGroup string // ignored when Type is "LOG"
Type string // "LOG" adds a log file; anything else (including "") adds a data file
Path string
SizeKB int64
// GrowthKB and GrowthPercent are mutually exclusive; GrowthPercent
// wins if both are set. Leaving both zero omits FILEGROWTH (server
// default).
GrowthKB int64
GrowthPercent int
// MaxSizeKB: 0 omits MAXSIZE (server default), -1 means UNLIMITED,
// >0 is the cap in KB.
MaxSizeKB int64
}
DatabaseFileSpec describes a file to add via AddFile.
type DatabaseOption ¶ added in v0.0.4
type DatabaseOption string
DatabaseOption identifies one ALTER DATABASE ... SET option.
const ( DBOptAutoClose DatabaseOption = "AUTO_CLOSE" DBOptAutoShrink DatabaseOption = "AUTO_SHRINK" DBOptAutoCreateStatistics DatabaseOption = "AUTO_CREATE_STATISTICS" DBOptAutoUpdateStatistics DatabaseOption = "AUTO_UPDATE_STATISTICS" DBOptAutoUpdateStatisticsAsync DatabaseOption = "AUTO_UPDATE_STATISTICS_ASYNC" DBOptANSINullDefault DatabaseOption = "ANSI_NULL_DEFAULT" DBOptANSINulls DatabaseOption = "ANSI_NULLS" DBOptANSIPadding DatabaseOption = "ANSI_PADDING" DBOptANSIWarnings DatabaseOption = "ANSI_WARNINGS" DBOptArithAbort DatabaseOption = "ARITHABORT" DBOptConcatNullYieldsNull DatabaseOption = "CONCAT_NULL_YIELDS_NULL" DBOptNumericRoundAbort DatabaseOption = "NUMERIC_ROUNDABORT" DBOptQuotedIdentifier DatabaseOption = "QUOTED_IDENTIFIER" DBOptRecursiveTriggers DatabaseOption = "RECURSIVE_TRIGGERS" DBOptCursorCloseOnCommit DatabaseOption = "CURSOR_CLOSE_ON_COMMIT" DBOptCursorDefault DatabaseOption = "CURSOR_DEFAULT" DBOptTrustworthy DatabaseOption = "TRUSTWORTHY" DBOptPageVerify DatabaseOption = "PAGE_VERIFY" DBOptContainment DatabaseOption = "CONTAINMENT" DBOptSnapshotIsolation DatabaseOption = "ALLOW_SNAPSHOT_ISOLATION" DBOptReadCommittedSnapshot DatabaseOption = "READ_COMMITTED_SNAPSHOT" )
type DatabaseOptions ¶ added in v0.0.4
type DatabaseOptions struct {
Owner string
PageVerify string // e.g. "CHECKSUM", "TORN_PAGE_DETECTION", "NONE"
UserAccess string // "MULTI_USER", "SINGLE_USER", "RESTRICTED_USER"
Containment string // "NONE", "PARTIAL"
DefaultCursor string // "LOCAL" or "GLOBAL"
SnapshotIsolation string // e.g. "OFF", "ON"
AutoClose bool
AutoShrink bool
AutoCreateStats bool
AutoUpdateStats bool
AutoUpdateStatsAsync bool
ANSINullDefault bool
ANSINulls bool
ANSIPadding bool
ANSIWarnings bool
ArithAbort bool
ConcatNullYieldsNull bool
NumericRoundAbort bool
QuotedIdentifier bool
RecursiveTriggers bool
CursorCloseOnCommit bool
ReadCommittedSnapshot bool
IsTrustworthy bool
IsBrokerEnabled bool
IsEncrypted bool
}
DatabaseOptions holds the ALTER DATABASE SET options and related flags from sys.databases that aren't already covered by Database's own cached fields (RecoveryModel, CompatibilityLevel, Collation, IsReadOnly).
type DatabasePermissionEntry ¶ added in v0.0.4
type DatabasePermissionEntry struct {
Principal string
PrincipalType string // e.g. "DATABASE_ROLE", "SQL_USER"
Grantor string
Permission string // e.g. "CONNECT", "CREATE TABLE", "ALTER"
State string // "GRANT", "GRANT_WITH_GRANT_OPTION", "DENY"
}
DatabasePermissionEntry is one GRANT/DENY entry recorded at database scope, as reported by sys.database_permissions — SSMS's Database Properties > Permissions page.
type DatabaseRole ¶
type DatabaseRole struct {
Name string
ID int
IsFixedRole bool
Owner string
Members []string
SID []byte
CreateDate time.Time
ModifyDate time.Time
// contains filtered or unexported fields
}
DatabaseRole represents a database-level role.
func (*DatabaseRole) ChangeOwner ¶ added in v0.0.5
func (r *DatabaseRole) ChangeOwner(newOwner string) error
ChangeOwner transfers ownership of the database role to a new principal.
func (*DatabaseRole) ChangeOwnerContext ¶ added in v0.0.5
func (r *DatabaseRole) ChangeOwnerContext(ctx context.Context, newOwner string) error
ChangeOwnerContext is the context-aware variant of ChangeOwner.
func (*DatabaseRole) Rename ¶ added in v0.0.5
func (r *DatabaseRole) Rename(newName string) error
Rename changes the database role's name.
func (*DatabaseRole) RenameContext ¶ added in v0.0.5
func (r *DatabaseRole) RenameContext(ctx context.Context, newName string) error
RenameContext is the context-aware variant of Rename.
type DatabaseScopedConfig ¶ added in v0.0.5
type DatabaseScopedConfig struct {
ID int
Name string
Value string
ValueForSecondary string
IsValueDefault bool
}
DatabaseScopedConfig mirrors one row of sys.database_scoped_configurations. Value and ValueForSecondary are the raw CAST(... AS NVARCHAR) text SQL Server reports for that option's sql_variant column — boolean-style options render as "0"/"1" this way, not "OFF"/"ON" (verified live), while enum-style options like ELEVATE_ONLINE render their keyword directly (e.g. "OFF"). Callers that know an option is boolean should compare against "1", not "ON".
type Dependency ¶ added in v0.0.4
type Dependency struct {
Schema string
Name string
TypeDesc string // e.g. "USER_TABLE", "VIEW", "SQL_STORED_PROCEDURE"
IsSchemaBound bool
}
Dependency is one edge in an object dependency graph, as reported by sys.sql_expression_dependencies — e.g. a view referencing a table, or a stored procedure referencing a function.
type DiskVolumeInfo ¶ added in v0.0.5
type DiskVolumeInfo struct {
// MountPoint is the drive letter (Windows) or mount path (Linux). Some
// hosts — e.g. a containerized Linux instance without a distinct OS
// volume — report this as empty.
MountPoint string
// VolumeName is the OS volume label, also sometimes empty.
VolumeName string
// SamplePath is one database file's path stored on this volume, for
// display when MountPoint and VolumeName are both empty.
SamplePath string
TotalMB float64
AvailableMB float64
}
DiskVolumeInfo describes free/total space for one storage volume backing at least one of the server's database files, as reported by sys.dm_os_volume_stats — a DMV SQL Server exposes identically on Windows and Linux, so this is usable regardless of the host OS.
type ErrorLogEntry ¶
ErrorLogEntry represents one row returned by xp_readerrorlog.
type ExecutionPlan ¶ added in v0.0.4
type ExecutionPlan struct {
// XML is the plan in SQL Server's "Showplan XML" format — the same
// document SSMS parses to draw its graphical plan.
XML string
}
ExecutionPlan holds one captured execution plan.
type ExtendedProperty ¶
ExtendedProperty mirrors a row from sys.extended_properties.
type ExtendedPropertyLevel ¶
type ExtendedPropertyLevel struct {
Level0Type string // e.g. "SCHEMA"
Level0Name string
Level1Type string // e.g. "TABLE"
Level1Name string
Level2Type string // e.g. "COLUMN"
Level2Name string
}
ExtendedPropertyLevel identifies the object level for an extended property.
type FileGroup ¶
type FileGroup struct {
Name string
IsDefault bool
IsReadOnly bool
Files []DatabaseFile
}
FileGroup represents a SQL Server filegroup.
type FileModify ¶ added in v0.0.4
type FileModify struct {
NewName string
SizeKB int64
GrowthKB int64
GrowthPercent int
MaxSizeKB int64 // -1 = UNLIMITED
}
FileModify holds the fields to change on an existing file via AlterFile. Zero-valued fields are left unchanged; NewName renames the file.
type ForeignKey ¶
type ForeignKey struct {
Name string
Columns []string
ReferencedTable string
ReferencedSchema string
ReferencedColumns []string
DeleteAction string // NO_ACTION, CASCADE, SET_NULL, SET_DEFAULT
UpdateAction string
IsDisabled bool
IsNotForReplication bool
}
ForeignKey mirrors Microsoft.SqlServer.Management.Smo.ForeignKey.
type Index ¶
type Index struct {
Name string
IndexID int
Type IndexType
IsClustered bool
IsUnique bool
IsPrimaryKey bool
IsUniqueConstraint bool
IsDisabled bool
FillFactor int
KeyColumns []IndexColumn
IncludedColumns []IndexColumn
FilterDefinition string
}
Index mirrors Microsoft.SqlServer.Management.Smo.Index.
func (*Index) DisableContext ¶
func (*Index) Rebuild ¶
Rebuild rebuilds the index (ALTER INDEX ... REBUILD). Pass fillFactor=0 to keep the existing fill factor.
func (*Index) RebuildContext ¶
func (*Index) Reorganize ¶
Reorganize reorganizes the index (ALTER INDEX ... REORGANIZE).
type IndexColumn ¶
IndexColumn represents one column in an index.
type IndexColumnDef ¶
IndexColumnDef describes one key column for a new index.
type IndexFragmentation ¶
type IndexFragmentation struct {
IndexName string
IndexID int
AvgFragmentationPct float64
PageCount int64
FragmentCount int64
}
IndexFragmentation holds fragmentation statistics for one index.
type Job ¶
type Job struct {
JobID string
Name string
Description string
IsEnabled bool
Category string
OwnerLoginName string
DateCreated time.Time
DateModified time.Time
StartStepID int
LastRunDate time.Time
LastRunOutcome JobOutcome
LastRunDuration time.Duration
NextRunDate time.Time
CurrentState JobState
// contains filtered or unexported fields
}
Job mirrors a row in msdb.dbo.sysjobs together with its latest activity.
func (*Job) AddSchedule ¶
func (j *Job) AddSchedule(req JobScheduleRequest) error
AddSchedule attaches a schedule to the job.
func (*Job) AddScheduleContext ¶
func (j *Job) AddScheduleContext(ctx context.Context, req JobScheduleRequest) error
func (*Job) AddStep ¶
func (j *Job) AddStep(req JobStepRequest) error
AddStep adds a T-SQL or other subsystem step to the job.
func (*Job) AddStepContext ¶
func (j *Job) AddStepContext(ctx context.Context, req JobStepRequest) error
func (*Job) History ¶
func (j *Job) History(limit int) ([]*JobHistoryEntry, error)
History returns the execution history (most recent first). Pass limit=0 to use the default of 100 rows.
func (*Job) HistoryContext ¶
type JobHistoryEntry ¶
type JobHistoryEntry struct {
RunDate time.Time
Duration time.Duration
Outcome JobOutcome
Message string
StepID int
StepName string
}
JobHistoryEntry represents one row from msdb.dbo.sysjobhistory.
type JobOutcome ¶
type JobOutcome int
JobOutcome represents the last run outcome for a job or step.
const ( JobOutcomeFailed JobOutcome = 0 JobOutcomeSucceeded JobOutcome = 1 JobOutcomeRetried JobOutcome = 2 JobOutcomeCancelled JobOutcome = 3 JobOutcomeUnknown JobOutcome = 5 )
type JobScheduleRequest ¶
type JobScheduleRequest struct {
Name string
Enabled bool
// FreqType: 1=once, 4=daily, 8=weekly, 16=monthly, 64=when agent starts.
FreqType int
FreqInterval int
// FreqSubdayType: 1=once, 2=seconds, 4=minutes, 8=hours.
FreqSubdayType int
FreqSubdayInterval int
// ActiveStartTime and ActiveEndTime are HHMMSS integers, e.g. 23000 = 02:30:00.
ActiveStartTime int
ActiveEndTime int
}
JobScheduleRequest describes a schedule to attach to a job.
type JobState ¶
type JobState int
JobState mirrors the current_execution_status values in msdb.dbo.sysjobactivity.
type JobStep ¶
type JobStep struct {
StepID int
Name string
Subsystem string // "TSQL", "CmdExec", "SSIS", etc.
Command string
OnSuccessAction int
OnFailAction int
LastRunOutcome JobOutcome
LastRunDuration int
RetryAttempts int
RetryInterval int
// contains filtered or unexported fields
}
JobStep represents one step of an agent job.
type JobStepRequest ¶
type JobStepRequest struct {
Name string
Subsystem string // "TSQL" is the most common value
Command string
// Database is only used for TSQL steps.
Database string
// OnSuccessAction: 1=quit success, 2=quit fail, 3=go to next step, 4=go to step N.
OnSuccessAction int
OnFailAction int
RetryAttempts int
// RetryInterval is in minutes.
RetryInterval int
}
JobStepRequest describes a step to add to a job.
type KerberosOptions ¶ added in v0.0.4
type KerberosOptions struct {
// ConfigFile is the path to krb5.conf. Defaults to $KRB5_CONFIG then
// /etc/krb5.conf. The file must exist for any Kerberos login.
ConfigFile string
// CredCacheFile is the path to a credential cache produced by "kinit".
// Defaults to $KRB5CCNAME. Use this for single sign-on.
CredCacheFile string
// KeytabFile is the path to a keytab holding the client's long-term key,
// for unattended logins. Requires User and Realm. Defaults to
// $KRB5_KTNAME or the configured default client keytab.
KeytabFile string
// Realm is the Kerberos realm, e.g. "CONTOSO.COM". When empty it is
// taken from a "user@REALM" User, then from the krb5.conf default realm.
Realm string
// DNSLookupKDC, when non-nil, overrides whether KDCs are located via DNS
// SRV records. The driver defaults to true.
DNSLookupKDC *bool
// UDPPreferenceLimit caps the message size sent over UDP before TCP is
// used. Zero leaves the driver default (1, i.e. effectively always TCP).
UDPPreferenceLimit int
}
KerberosOptions configures Kerberos authentication for AuthWindows on non-Windows hosts (and on Windows when set explicitly, in preference to native SSPI). Every field is optional: with all left zero the driver uses the ambient Kerberos setup — /etc/krb5.conf (or $KRB5_CONFIG) and the credential cache from a prior "kinit" ($KRB5CCNAME or the default cache) — which is the usual single-sign-on flow on a domain-joined Linux host.
The three credential sources are mutually exclusive and tried in this order of precedence by the driver: an explicit KeytabFile (with User and Realm), then a CredCacheFile, then User + Password (with Realm). When none is set, the credential cache is discovered from the environment.
type Language ¶ added in v0.0.4
Language mirrors a row from sys.syslanguages — used to populate the server's "Default language" and a Login's "Default language" dropdowns.
type LinkedServer ¶
type LinkedServer struct {
Name string
Product string
Provider string
DataSource string
IsRemote bool
}
LinkedServer represents a linked server definition.
type Login ¶
type Login struct {
Name string
SID []byte
LoginType string // "SQL_LOGIN", "WINDOWS_LOGIN", "WINDOWS_GROUP"
IsDisabled bool
DefaultDatabase string
CreateDate time.Time
ModifyDate time.Time
// contains filtered or unexported fields
}
Login represents a SQL Server server-level login.
func (*Login) AddServerRoleMember ¶
AddServerRoleMember adds this login to a server role.
func (*Login) AddServerRoleMemberContext ¶
func (*Login) ChangePassword ¶
ChangePassword changes the login's password.
func (*Login) ChangePasswordContext ¶
ChangePasswordContext changes the login's password.
Security: the password is quoted via nStringLiteral (N'...', doubling any embedded quote) rather than interpolated raw. HASHED is deliberately not used — it tells SQL Server the value is already one of its own password-hash formats, not cleartext, so passing a hex encoding of the cleartext under HASHED either fails outright or creates a login nothing can ever authenticate as.
func (*Login) ChangePasswordWithOptions ¶ added in v0.0.4
ChangePasswordWithOptions changes the login's password with the same quoted-literal encoding ChangePassword uses, plus MUST_CHANGE (force a password change at next login) and UNLOCK (clear a lockout).
func (*Login) ChangePasswordWithOptionsContext ¶ added in v0.0.4
func (l *Login) ChangePasswordWithOptionsContext(ctx context.Context, newPassword string, mustChange, unlock bool) error
ChangePasswordWithOptionsContext is the context-aware variant of ChangePasswordWithOptions.
func (*Login) Details ¶ added in v0.0.4
func (l *Login) Details() (*LoginDetails, error)
Details returns the login's password-policy and status information.
func (*Login) DetailsContext ¶ added in v0.0.4
func (l *Login) DetailsContext(ctx context.Context) (*LoginDetails, error)
DetailsContext is the context-aware variant of Details.
func (*Login) MapCredential ¶ added in v0.0.4
MapCredential maps a server credential to the login.
func (*Login) MapCredentialContext ¶ added in v0.0.4
MapCredentialContext is the context-aware variant of MapCredential.
func (*Login) MapToDatabase ¶ added in v0.0.4
MapToDatabase creates a user for this login in the named database (CREATE USER ... FOR LOGIN).
func (*Login) MapToDatabaseContext ¶ added in v0.0.4
func (l *Login) MapToDatabaseContext(ctx context.Context, dbName, userName, defaultSchema string) error
MapToDatabaseContext is the context-aware variant of MapToDatabase.
func (*Login) RemoveServerRoleMember ¶
RemoveServerRoleMember removes this login from a server role.
func (*Login) RemoveServerRoleMemberContext ¶
func (*Login) RenameContext ¶ added in v0.0.4
RenameContext is the context-aware variant of Rename.
func (*Login) SetDefaultDatabase ¶ added in v0.0.4
SetDefaultDatabase changes the login's default database.
func (*Login) SetDefaultDatabaseContext ¶ added in v0.0.4
SetDefaultDatabaseContext is the context-aware variant of SetDefaultDatabase.
func (*Login) SetDefaultLanguage ¶ added in v0.0.4
SetDefaultLanguage changes the login's default language.
func (*Login) SetDefaultLanguageContext ¶ added in v0.0.4
SetDefaultLanguageContext is the context-aware variant of SetDefaultLanguage.
func (*Login) SetPasswordPolicy ¶ added in v0.0.4
SetPasswordPolicy sets the login's CHECK_POLICY and CHECK_EXPIRATION flags. SQL Server rejects checkExpiration=true with checkPolicy=false — surfaced as the returned error, not pre-validated here.
func (*Login) SetPasswordPolicyContext ¶ added in v0.0.4
func (l *Login) SetPasswordPolicyContext(ctx context.Context, checkPolicy, checkExpiration bool) error
SetPasswordPolicyContext is the context-aware variant of SetPasswordPolicy.
func (*Login) UnmapCredential ¶ added in v0.0.4
UnmapCredential removes a credential mapping from the login.
func (*Login) UnmapCredentialContext ¶ added in v0.0.4
UnmapCredentialContext is the context-aware variant of UnmapCredential.
func (*Login) UnmapFromDatabase ¶ added in v0.0.4
UnmapFromDatabase drops this login's mapped user in the named database.
func (*Login) UnmapFromDatabaseContext ¶ added in v0.0.4
UnmapFromDatabaseContext is the context-aware variant of UnmapFromDatabase.
func (*Login) UserMappingSeq ¶ added in v0.0.4
func (l *Login) UserMappingSeq() iter.Seq2[*LoginUserMapping, error]
UserMappingSeq returns an iterator over every database this login is mapped into.
func (*Login) UserMappings ¶ added in v0.0.4
func (l *Login) UserMappings() ([]*LoginUserMapping, error)
UserMappings returns every database this login has a mapped user in. Only mapped databases are included — combine with Server.Databases to build a full "all databases, mapped or not" view. Databases that are offline, or that the login can't currently reach, are skipped rather than failing the whole scan (SSMS's own User Mapping page behaves the same way).
func (*Login) UserMappingsContext ¶ added in v0.0.4
func (l *Login) UserMappingsContext(ctx context.Context) ([]*LoginUserMapping, error)
UserMappingsContext is the context-aware variant of UserMappings.
type LoginDetails ¶ added in v0.0.4
type LoginDetails struct {
IsLocked bool
IsExpired bool
MustChangePassword bool
IsPolicyChecked bool
IsExpirationChecked bool
PasswordLastSet time.Time
// LastLogin is best-effort: it reflects the most recent session found
// in sys.dm_exec_sessions, which only holds currently-connected (or
// very recently disconnected) sessions, not full login history. It is
// the zero Time if no matching session is currently visible.
LastLogin time.Time
BadPasswordCount int
// BadPasswordTime is the last failed-login attempt time, or the zero
// Time if none is recorded.
BadPasswordTime time.Time
DefaultLanguage string
CredentialName string
// ConnectSQLState is "GRANT", "DENY", or "" (default/unset) for the
// login's explicit CONNECT SQL server permission.
ConnectSQLState string
}
LoginDetails holds the login's password-policy and status fields — SSMS's Login Properties > Status page (plus the policy checkboxes and credential mapping shown on the General page). Windows logins have no password policy; those fields read as their zero value rather than erroring, since LOGINPROPERTY simply returns NULL for them.
type LoginUserMapping ¶ added in v0.0.4
LoginUserMapping describes one database this login is mapped into — SSMS's Login Properties > User Mapping page.
type MailProfile ¶
MailProfile represents an msdb Database Mail profile.
type ObjectPermission ¶
type ObjectPermission string
ObjectPermission represents a single permission on a securable.
const ( PermSelect ObjectPermission = "SELECT" PermInsert ObjectPermission = "INSERT" PermUpdate ObjectPermission = "UPDATE" PermDelete ObjectPermission = "DELETE" PermExecute ObjectPermission = "EXECUTE" PermControl ObjectPermission = "CONTROL" PermView ObjectPermission = "VIEW DEFINITION" PermAlter ObjectPermission = "ALTER" PermReferences ObjectPermission = "REFERENCES" PermTakeOwnership ObjectPermission = "TAKE OWNERSHIP" PermViewChangeTracking ObjectPermission = "VIEW CHANGE TRACKING" )
type PartitionFunction ¶
type PartitionFunction struct {
Name string
FunctionID int
InputType DataType
BoundaryCount int
IsRight bool // RIGHT = boundary is in right partition
Boundaries []string
// contains filtered or unexported fields
}
PartitionFunction mirrors sys.partition_functions.
func (*PartitionFunction) Drop ¶
func (pf *PartitionFunction) Drop() error
Drop drops the partition function.
func (*PartitionFunction) DropContext ¶ added in v0.0.5
func (pf *PartitionFunction) DropContext(ctx context.Context) error
DropContext is the context-aware variant of Drop.
func (*PartitionFunction) MergeRange ¶
func (pf *PartitionFunction) MergeRange(value string) error
MergeRange removes a boundary value from the partition function.
func (*PartitionFunction) MergeRangeContext ¶ added in v0.0.5
func (pf *PartitionFunction) MergeRangeContext(ctx context.Context, value string) error
MergeRangeContext is the context-aware variant of MergeRange.
func (*PartitionFunction) SplitRange ¶
func (pf *PartitionFunction) SplitRange(value string) error
SplitRange adds a new boundary value to the partition function.
func (*PartitionFunction) SplitRangeContext ¶ added in v0.0.5
func (pf *PartitionFunction) SplitRangeContext(ctx context.Context, value string) error
SplitRangeContext is the context-aware variant of SplitRange.
type PartitionInfo ¶
PartitionInfo holds per-partition row counts for a table.
type PartitionScheme ¶
type PartitionScheme struct {
Name string
SchemeID int
FunctionName string
FileGroups []string
// contains filtered or unexported fields
}
PartitionScheme mirrors sys.partition_schemes.
func (*PartitionScheme) Drop ¶
func (ps *PartitionScheme) Drop() error
Drop drops the partition scheme.
func (*PartitionScheme) DropContext ¶ added in v0.0.5
func (ps *PartitionScheme) DropContext(ctx context.Context) error
DropContext is the context-aware variant of Drop.
type PermissionEntry ¶ added in v0.0.4
type PermissionEntry struct {
Principal string
PrincipalType string // e.g. "DATABASE_ROLE", "SQL_USER"
Grantor string
Permission ObjectPermission
State PermissionState
}
PermissionEntry is one GRANT/DENY entry recorded for a securable, as reported by sys.database_permissions. The permission-name and state enums live in types.go (ObjectPermission, PermissionState).
type PermissionState ¶
type PermissionState string
PermissionState represents GRANT / DENY / REVOKE.
const ( PermissionGrant PermissionState = "GRANT" PermissionDeny PermissionState = "DENY" PermissionRevoke PermissionState = "REVOKE" )
type PrincipalSecurable ¶ added in v0.0.5
type PrincipalSecurable struct {
SecurableType string
Schema string
Name string
Permission string
State string
}
PrincipalSecurable is one GRANT/DENY entry for a securable that a principal (typically a database role) has an explicit permission on — the inverse of Permissions, which is "one securable, every principal." This is "one principal, every securable" — SSMS's Database Role Properties > Securables page. SecurableType is "TABLE", "VIEW", "SCHEMA", or "DATABASE"; Schema and Name are empty for "DATABASE".
type ProcParam ¶ added in v0.0.4
type ProcParam struct {
// contains filtered or unexported fields
}
ProcParam is one argument to a stored procedure. Build it with In (input), Out (output), or InOut (both). Output and in/out parameters carry a pointer the returned value is written to, exactly as with database/sql's sql.Out.
type ProcResult ¶ added in v0.0.4
type ProcResult struct {
// ReturnStatus is the procedure's RETURN value (0 unless the procedure
// returns another code). SQL Server uses it by convention to signal
// success (0) or an error (non-zero).
ReturnStatus int32
}
ProcResult is what ExecProc reports beyond the values written to any output parameters' pointers.
type ProcessorInfo ¶ added in v0.0.5
ProcessorInfo holds server-wide CPU/NUMA topology: the header counts on Server Properties > Processors (CPU count, NUMA nodes, hyperthread ratio) and the NUMA column in its per-CPU affinity grid. CPUNUMANode[i] is the NUMA node hosting logical CPU i.
type QueryStoreInfo ¶ added in v0.0.5
type QueryStoreInfo struct {
DesiredState string // "OFF", "READ_ONLY", "READ_WRITE"
ActualState string
ReadOnlyReason int
CurrentStorageMB int64
MaxStorageMB int64
FlushIntervalSec int
IntervalMinutes int
MaxPlansPerQuery int
CaptureMode string // "NONE", "AUTO", "ALL", "CUSTOM"
SizeCleanupMode string // "OFF", "AUTO"
StaleThresholdDays int
WaitStatsCaptureMode string // "OFF", "ON"
CapturePolicyExecCount int
CapturePolicyCompileCPUMs int64
CapturePolicyExecCPUMs int64
CapturePolicyStaleHours int
}
QueryStoreInfo mirrors the single row of sys.database_query_store_options every database has, whether or not Query Store is actually turned on.
type QueryStoreOptions ¶ added in v0.0.5
type QueryStoreOptions struct {
DesiredState string // "OFF", "READ_ONLY", "READ_WRITE"
MaxStorageMB int64
CaptureMode string // "NONE", "AUTO", "ALL", "CUSTOM"
SizeCleanupMode string // "OFF", "AUTO"
StaleThresholdDays int
FlushIntervalSec int
IntervalMinutes int
MaxPlansPerQuery int
WaitStatsCaptureMode string // "OFF", "ON"
// Custom capture policy thresholds, used only when CaptureMode is
// "CUSTOM".
CapturePolicyExecCount int
CapturePolicyCompileCPUMs int64
CapturePolicyExecCPUMs int64
CapturePolicyStaleHours int
}
QueryStoreOptions holds the settings SetQueryStoreOptions writes via ALTER DATABASE ... SET QUERY_STORE = ON (...). DesiredState of "OFF" turns Query Store off and ignores every other field.
type RecoveryModel ¶
type RecoveryModel string
RecoveryModel mirrors SQL Server recovery model options.
const ( RecoveryModelSimple RecoveryModel = "SIMPLE" RecoveryModelFull RecoveryModel = "FULL" RecoveryModelBulkLogged RecoveryModel = "BULK_LOGGED" )
type RelocateFile ¶
RelocateFile maps a logical file name to a new physical path.
type RestoreOptions ¶
type RestoreOptions struct {
// Database is the target database name (required).
Database string
// Action: DATABASE (default) or LOG.
Action BackupAction
// Devices is one or more backup file paths (required).
Devices []string
// RelocateFiles maps logical file names to new physical paths.
RelocateFiles []RelocateFile
// NoRecovery keeps the database in RESTORING state (for log shipping / tail-log).
NoRecovery bool
// Recovery transitions the database to ONLINE (default when neither flag is set).
Recovery bool
// StandBy sets standby mode; provide the undo-file path.
StandBy string
// Replace forces restoration over an existing database.
Replace bool
// Checksum verifies backup checksums.
Checksum bool
// Stats controls progress reporting frequency (e.g. 10 = every 10%).
// If Progress is set and Stats is left at 0, it defaults to 10 so
// percent-complete messages actually get emitted.
Stats int
// StopAt performs a point-in-time restore.
StopAt *time.Time
// Progress, if set, is called for every message SQL Server emits while
// the restore runs, including the "N percent processed" notices STATS
// produces — pct is -1 for a message that doesn't carry a percentage.
Progress func(pct int, message string)
}
RestoreOptions configures a RESTORE DATABASE or RESTORE LOG operation.
type RoleMember ¶ added in v0.0.5
type RoleMember struct {
Name string
Type string // e.g. "SQL_USER", "WINDOWS_USER", "DATABASE_ROLE"
}
RoleMember is one direct member of a database role.
type SQLError ¶ added in v0.0.4
type SQLError struct {
// Number is the SQL Server error number (the "Msg" value), e.g. 208
// for "Invalid object name".
Number int32
// State is the error state, disambiguating errors that share a Number.
State uint8
// Class is the severity level (the "Level" value). 0-10 are
// informational; 11-16 are user-correctable; 17+ are software or
// hardware errors.
Class uint8
// Message is the human-readable error text.
Message string
// ServerName is the instance that raised the error.
ServerName string
// ProcName is the stored procedure, function, or trigger that raised
// the error; empty for an ad-hoc batch.
ProcName string
// LineNo is the 1-based line within the batch or procedure.
LineNo int32
// All lists every error the batch produced, first to last. The final
// entry mirrors the fields above. Nil when only a single error is
// reported.
All []SQLError
}
SQLError is a structured SQL Server error — the "Msg 208, Level 16, State 1, Line 4" detail SSMS shows in its Messages pane. It is extracted from the driver's own error type so callers can inspect the error number, severity, and line without importing github.com/microsoft/go-mssqldb directly. Use AsSQLError to obtain one from any error.
func AsSQLError ¶ added in v0.0.4
AsSQLError reports whether err, or any error it wraps, is a SQL Server error and, if so, returns its structured form.
func (*SQLError) Error ¶ added in v0.0.4
Error renders the error in the multi-line form SSMS uses: the Header line followed by the message text.
type Schema ¶
Schema mirrors Microsoft.SqlServer.Management.Smo.Schema.
func (*Schema) ChangeOwner ¶
ChangeOwner transfers schema ownership to a new principal.
func (*Schema) ChangeOwnerContext ¶
func (*Schema) ObjectCount ¶ added in v0.0.5
ObjectCount returns the number of objects (tables, views, procedures, functions, ...) contained in the schema — SSMS's Owned Schemas "Object count" field, fetched lazily only when a schema is selected rather than folded into Schema/SchemasContext (used by every tree-list call).
type ScriptCollector ¶ added in v0.0.4
type ScriptCollector struct {
Statements []string
}
ScriptCollector accumulates the SQL statements a write method would have executed, instead of running them. See WithScript.
func WithScript ¶ added in v0.0.4
func WithScript(ctx context.Context) (context.Context, *ScriptCollector)
WithScript returns a derived context carrying a *ScriptCollector. Every gosmo write method invoked with the returned context appends its statement to the collector and returns as if it had succeeded, without touching the server — callers use this to preview or hand off the exact SQL a set of pending edits would run (e.g. an "Script Changes" action that opens the statements in a query editor instead of executing them).
Read methods are unaffected: only the exec chokepoints (Server.execContext, Database.exec) consult the collector.
type ScriptOptions ¶
type ScriptOptions struct {
// IncludeHeaders adds an informational header comment.
IncludeHeaders bool
// IncludeIfNotExists wraps DDL in an existence check.
IncludeIfNotExists bool
// ScriptDrops emits DROP statements instead of CREATE statements.
ScriptDrops bool
// SchemaQualify prefixes object names with their schema.
SchemaQualify bool
// AnsiPadding emits SET ANSI_PADDING ON before CREATE TABLE.
AnsiPadding bool
}
ScriptOptions controls how objects are scripted.
func DefaultScriptOptions ¶
func DefaultScriptOptions() ScriptOptions
DefaultScriptOptions returns sensible defaults.
type Scripter ¶
type Scripter struct {
// contains filtered or unexported fields
}
Scripter generates T-SQL DDL scripts for objects in a database.
func NewScripter ¶
func NewScripter(db *Database, opts ScriptOptions) *Scripter
NewScripter creates a Scripter for the given database.
func (*Scripter) ScriptDatabase ¶
ScriptDatabase generates a CREATE DATABASE script for the attached database.
func (*Scripter) ScriptFunction ¶
ScriptFunction returns the CREATE FUNCTION definition.
func (*Scripter) ScriptFunctionContext ¶
ScriptFunctionContext is the context-aware variant.
func (*Scripter) ScriptStoredProcedure ¶
ScriptStoredProcedure returns the CREATE PROCEDURE definition.
func (*Scripter) ScriptStoredProcedureContext ¶
func (sc *Scripter) ScriptStoredProcedureContext(ctx context.Context, schema, name string) (string, error)
ScriptStoredProcedureContext is the context-aware variant.
func (*Scripter) ScriptTable ¶
ScriptTable generates a CREATE TABLE (or DROP TABLE) script.
func (*Scripter) ScriptTableContext ¶
ScriptTableContext is the context-aware variant of ScriptTable.
func (*Scripter) ScriptView ¶
ScriptView returns the CREATE VIEW definition as stored in sys.sql_modules.
type SearchResult ¶ added in v0.0.4
type SearchResult struct {
Schema string
Name string
TypeDesc string // e.g. "USER_TABLE", "VIEW", "SQL_STORED_PROCEDURE"
}
SearchResult is one object matched by Database.Search.
type SecurityPolicy ¶
type SecurityPolicy struct {
Name string
Schema string
ObjectID int
IsEnabled bool
IsNotForReplication bool
Predicates []*SecurityPredicate
// contains filtered or unexported fields
}
SecurityPolicy mirrors sys.security_policies.
func (*SecurityPolicy) Disable ¶
func (p *SecurityPolicy) Disable() error
Disable disables the security policy.
func (*SecurityPolicy) DisableContext ¶ added in v0.0.5
func (p *SecurityPolicy) DisableContext(ctx context.Context) error
DisableContext is the context-aware variant of Disable.
func (*SecurityPolicy) DropContext ¶ added in v0.0.5
func (p *SecurityPolicy) DropContext(ctx context.Context) error
DropContext is the context-aware variant of Drop.
func (*SecurityPolicy) Enable ¶
func (p *SecurityPolicy) Enable() error
Enable enables the security policy.
func (*SecurityPolicy) EnableContext ¶ added in v0.0.5
func (p *SecurityPolicy) EnableContext(ctx context.Context) error
EnableContext is the context-aware variant of Enable.
type SecurityPredicate ¶
type SecurityPredicate struct {
PredicateType string // "FILTER" or "BLOCK"
PredicateDefinition string
TargetSchema string
TargetTable string
Operation string // for BLOCK: AFTER INSERT, AFTER UPDATE, etc.
}
SecurityPredicate represents one predicate in a security policy.
type Sequence ¶
type Sequence struct {
Name string
Schema string
ObjectID int
DataType DataType
StartValue int64
Increment int64
MinValue int64
MaxValue int64
IsCycling bool
IsCached bool
CacheSize int
CurrentValue int64
// contains filtered or unexported fields
}
Sequence mirrors sys.sequences.
func (*Sequence) DropContext ¶ added in v0.0.5
DropContext is the context-aware variant of Drop.
func (*Sequence) NextValueContext ¶ added in v0.0.5
NextValueContext is the context-aware variant of NextValue.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server is the top-level object representing a SQL Server instance. Create one with Connect() and use it to enumerate or manage databases, logins, server roles, linked servers, and more.
func Connect ¶
func Connect(opts ConnectionOptions) (*Server, error)
Connect opens a connection to a SQL Server instance and returns a Server. The driver and DSN are chosen automatically based on opts.Auth.
func ConnectContext ¶
func ConnectContext(ctx context.Context, opts ConnectionOptions) (*Server, error)
ConnectContext is the context-aware variant of Connect. The context governs the initial ping and server-info load only; subsequent calls each carry their own context.
func (*Server) ActiveSessions ¶
func (s *Server) ActiveSessions(includeSystem bool) ([]*ActiveSession, error)
ActiveSessions returns running sessions. Set includeSystem=true to include SQL Server internal sessions.
func (*Server) ActiveSessionsContext ¶
func (s *Server) ActiveSessionsContext(ctx context.Context, includeSystem bool) ([]*ActiveSession, error)
ActiveSessionsContext is the context-aware variant of ActiveSessions.
func (*Server) Backup ¶
func (s *Server) Backup(opts BackupOptions) error
Backup performs a BACKUP DATABASE (or LOG) operation.
func (*Server) BackupContext ¶
func (s *Server) BackupContext(ctx context.Context, opts BackupOptions) error
BackupContext is the context-aware variant of Backup.
func (*Server) BackupFileList ¶ added in v0.0.5
func (s *Server) BackupFileList(device string) ([]*BackupFile, error)
BackupFileList reads the database files contained in the backup set on a backup device (RESTORE FILELISTONLY).
func (*Server) BackupFileListContext ¶ added in v0.0.5
BackupFileListContext is the context-aware variant of BackupFileList.
func (*Server) BackupFileSeq ¶ added in v0.0.5
BackupFileSeq returns an iterator over the database files inside the backup set on a backup device.
func (*Server) BackupHeaderSeq ¶ added in v0.0.5
BackupHeaderSeq returns an iterator over the backup sets on a backup device.
func (*Server) BackupHeaders ¶ added in v0.0.5
func (s *Server) BackupHeaders(device string) ([]*BackupHeader, error)
BackupHeaders reads the backup sets on a backup device (RESTORE HEADERONLY) — one BackupHeader per set, in position order.
func (*Server) BackupHeadersContext ¶ added in v0.0.5
BackupHeadersContext is the context-aware variant of BackupHeaders.
func (*Server) BackupHistory ¶
func (s *Server) BackupHistory(databaseName string) ([]*BackupInfo, error)
BackupHistory returns the backup history for a database from msdb.
func (*Server) BackupHistoryContext ¶
func (s *Server) BackupHistoryContext(ctx context.Context, databaseName string) ([]*BackupInfo, error)
BackupHistoryContext is the context-aware variant of BackupHistory.
func (*Server) ConfigurationByName ¶
func (s *Server) ConfigurationByName(name string) (*ConfigurationOption, error)
ConfigurationByName returns a single option using a direct parameterised query.
func (*Server) ConfigurationByNameContext ¶
func (s *Server) ConfigurationByNameContext(ctx context.Context, name string) (*ConfigurationOption, error)
ConfigurationByNameContext is the context-aware variant.
func (*Server) Configurations ¶
func (s *Server) Configurations() ([]*ConfigurationOption, error)
Configurations returns all server configuration options.
func (*Server) ConfigurationsContext ¶
func (s *Server) ConfigurationsContext(ctx context.Context) ([]*ConfigurationOption, error)
ConfigurationsContext is the context-aware variant of Configurations.
func (*Server) CreateDatabase ¶
func (s *Server) CreateDatabase(name string, opts *CreateDatabaseOptions) error
CreateDatabase creates a new database with the given name and optional options.
func (*Server) CreateDatabaseContext ¶
func (s *Server) CreateDatabaseContext(ctx context.Context, name string, opts *CreateDatabaseOptions) error
CreateDatabaseContext is the context-aware variant of CreateDatabase.
func (*Server) CreateJob ¶
func (s *Server) CreateJob(req CreateJobRequest) (*Job, error)
CreateJob creates a new SQL Server Agent job.
func (*Server) CreateJobContext ¶
func (*Server) CreateLogin ¶
func (s *Server) CreateLogin(name, password string, opts *CreateLoginOptions) error
CreateLogin creates a SQL Server or Windows login. Pass an empty password to create a Windows login (FROM WINDOWS).
func (*Server) CreateLoginContext ¶
func (s *Server) CreateLoginContext(ctx context.Context, name, password string, opts *CreateLoginOptions) error
CreateLoginContext is the context-aware variant of CreateLogin.
Security: the password is never string-concatenated raw into the SQL text — it's quoted via nStringLiteral (N'...', doubling any embedded quote), the same escaping every other literal in this package uses. HASHED is deliberately not used here: it tells SQL Server the value is already one of its own password-hash formats, not a cleartext password, so passing an arbitrary hex encoding of the cleartext under HASHED either fails outright or creates a login nothing can ever authenticate as.
func (*Server) CredentialSeq ¶ added in v0.0.4
func (s *Server) CredentialSeq() iter.Seq2[*Credential, error]
CredentialSeq returns an iterator over all server-level credentials.
func (*Server) Credentials ¶ added in v0.0.4
func (s *Server) Credentials() ([]*Credential, error)
Credentials returns every server-level credential.
func (*Server) CredentialsContext ¶ added in v0.0.4
func (s *Server) CredentialsContext(ctx context.Context) ([]*Credential, error)
CredentialsContext is the context-aware variant of Credentials.
func (*Server) CurrentDatabase ¶ added in v0.0.4
CurrentDatabase returns the name of the database the connection is currently in — the login's default database when ConnectionOptions.Database was left empty at connect time, or whatever a session-level USE has since switched to.
func (*Server) CurrentDatabaseContext ¶ added in v0.0.4
CurrentDatabaseContext is the context-aware variant of CurrentDatabase.
func (*Server) CycleErrorLog ¶
CycleErrorLog closes the current error log and opens a new one. Equivalent to sp_cycle_errorlog.
func (*Server) CycleErrorLogContext ¶
func (*Server) Database ¶ added in v0.0.5
Database returns a lightweight handle for name without querying the server at all — unlike DatabaseByName/DatabaseByNameContext, it doesn't verify the database exists or populate State/RecoveryModel/Collation/ CompatibilityLevel/etc. (they stay at their zero value). Every write method on *Database (AddFileGroupContext, SetDatabaseOptionContext, SetOwnerContext, ...) only ever needs the database's name, never those cached fields, so this is sufficient for issuing further ALTER-style calls against a database the caller already knows exists — most commonly one it just created in the same operation. It's also the only way to do that under a WithScript-derived context: DatabaseByNameContext's own lookup query is a real read, not a write, so it isn't captured by ScriptCollector and would fail outright (or return stale data) for a database whose CREATE DATABASE was itself only scripted, not actually run.
func (*Server) DatabaseByName ¶
DatabaseByName returns a single database by name.
func (*Server) DatabaseByNameContext ¶
DatabaseByNameContext is the context-aware variant of DatabaseByName.
func (*Server) DatabaseSeq ¶
DatabaseSeq returns an iterator over all databases on the server. The second yield value carries any error that stopped the iteration.
func (*Server) DatabasesContext ¶
DatabasesContext returns all databases, honouring the provided context.
func (*Server) DenyServerPermission ¶ added in v0.0.4
DenyServerPermission denies a server-level permission to principal.
func (*Server) DenyServerPermissionContext ¶ added in v0.0.4
func (s *Server) DenyServerPermissionContext(ctx context.Context, permission, principal string) error
DenyServerPermissionContext is the context-aware variant of DenyServerPermission.
func (*Server) DiskVolumeSeq ¶ added in v0.0.5
func (s *Server) DiskVolumeSeq() iter.Seq2[DiskVolumeInfo, error]
DiskVolumeSeq returns an iterator over the server's storage volumes.
func (*Server) DiskVolumes ¶ added in v0.0.5
func (s *Server) DiskVolumes() ([]DiskVolumeInfo, error)
DiskVolumes returns free/total space for every storage volume backing a database file on the server.
func (*Server) DiskVolumesContext ¶ added in v0.0.5
func (s *Server) DiskVolumesContext(ctx context.Context) ([]DiskVolumeInfo, error)
DiskVolumesContext is the context-aware variant of DiskVolumes.
func (*Server) DropDatabase ¶
DropDatabase drops the named database. When force is true, active connections are terminated first.
func (*Server) DropDatabaseContext ¶
DropDatabaseContext is the context-aware variant of DropDatabase.
func (*Server) DropLoginContext ¶
DropLoginContext is the context-aware variant of DropLogin.
func (*Server) GrantServerPermission ¶ added in v0.0.4
GrantServerPermission grants a server-level permission to principal.
func (*Server) GrantServerPermissionContext ¶ added in v0.0.4
func (s *Server) GrantServerPermissionContext(ctx context.Context, permission, principal string) error
GrantServerPermissionContext is the context-aware variant of GrantServerPermission.
func (*Server) Info ¶
func (s *Server) Info() *ServerInfo
Info returns cached server metadata (version, edition, paths ...).
func (*Server) JobByName ¶
JobByName returns a single job by name using a direct parameterised query.
func (*Server) JobByNameContext ¶
JobByNameContext is the context-aware variant of JobByName.
func (*Server) JobsContext ¶
JobsContext is the context-aware variant of Jobs.
func (*Server) KillSession ¶
KillSession terminates a session by session ID.
func (*Server) KillSessionContext ¶
func (*Server) LanguageSeq ¶ added in v0.0.4
LanguageSeq returns an iterator over all languages installed on the server.
func (*Server) Languages ¶ added in v0.0.4
Languages returns every language installed on the server.
func (*Server) LanguagesContext ¶ added in v0.0.4
LanguagesContext is the context-aware variant of Languages.
func (*Server) LinkedServers ¶
func (s *Server) LinkedServers() ([]*LinkedServer, error)
LinkedServers returns all linked servers defined on this instance.
func (*Server) LinkedServersContext ¶
func (s *Server) LinkedServersContext(ctx context.Context) ([]*LinkedServer, error)
LinkedServersContext is the context-aware variant of LinkedServers.
func (*Server) Login ¶ added in v0.0.5
Login returns a lightweight handle for name without querying the server at all — unlike LoginByName/LoginByNameContext, it doesn't verify the login exists or populate SID/LoginType/IsDisabled/etc. (they stay at their zero value). Every write method on *Login (AddServerRoleMemberContext, DisableContext, ChangePasswordContext, ...) only ever needs the login's name, never those cached fields, so this is sufficient for issuing further ALTER-style calls against a login the caller already knows exists — most commonly one it just created in the same operation. See Server.Database's doc comment for why this also matters under a WithScript-derived context.
func (*Server) LoginByName ¶ added in v0.0.4
LoginByName returns a single server-level login by name.
func (*Server) LoginByNameContext ¶ added in v0.0.4
LoginByNameContext is the context-aware variant of LoginByName.
func (*Server) LoginsContext ¶
LoginsContext is the context-aware variant of Logins.
func (*Server) MailProfiles ¶
func (s *Server) MailProfiles() ([]*MailProfile, error)
MailProfiles returns all Database Mail profiles from msdb.
func (*Server) MailProfilesContext ¶
func (s *Server) MailProfilesContext(ctx context.Context) ([]*MailProfile, error)
func (*Server) MemoryStats ¶ added in v0.0.4
func (s *Server) MemoryStats() (*ServerMemoryStats, error)
MemoryStats returns live server memory figures.
func (*Server) MemoryStatsContext ¶ added in v0.0.4
func (s *Server) MemoryStatsContext(ctx context.Context) (*ServerMemoryStats, error)
MemoryStatsContext is the context-aware variant of MemoryStats.
func (*Server) ProcessorInfo ¶ added in v0.0.5
func (s *Server) ProcessorInfo() (*ProcessorInfo, error)
ProcessorInfo returns server-wide CPU/NUMA topology.
func (*Server) ProcessorInfoContext ¶ added in v0.0.5
func (s *Server) ProcessorInfoContext(ctx context.Context) (*ProcessorInfo, error)
ProcessorInfoContext is the context-aware variant of ProcessorInfo.
func (*Server) ReadErrorLog ¶
func (s *Server) ReadErrorLog(logNumber int) ([]*ErrorLogEntry, error)
ReadErrorLog reads a SQL Server error log file. Pass logNumber=0 for the current log, 1 for the first archived log, etc.
func (*Server) ReadErrorLogContext ¶
func (*Server) Reconfigure ¶
Reconfigure applies pending sp_configure changes. Pass override=true to use RECONFIGURE WITH OVERRIDE (bypasses range checks).
func (*Server) ReconfigureContext ¶
func (*Server) Restore ¶
func (s *Server) Restore(opts RestoreOptions) error
Restore performs a RESTORE DATABASE (or LOG) operation.
func (*Server) RestoreContext ¶
func (s *Server) RestoreContext(ctx context.Context, opts RestoreOptions) error
RestoreContext is the context-aware variant of Restore.
func (*Server) RevokeServerPermission ¶ added in v0.0.4
RevokeServerPermission revokes a server-level permission from principal.
func (*Server) RevokeServerPermissionContext ¶ added in v0.0.4
func (s *Server) RevokeServerPermissionContext(ctx context.Context, permission, principal string) error
RevokeServerPermissionContext is the context-aware variant of RevokeServerPermission.
func (*Server) SecurityInfo ¶ added in v0.0.4
func (s *Server) SecurityInfo() (*ServerSecurityInfo, error)
SecurityInfo returns server-wide authentication settings.
func (*Server) SecurityInfoContext ¶ added in v0.0.4
func (s *Server) SecurityInfoContext(ctx context.Context) (*ServerSecurityInfo, error)
SecurityInfoContext is the context-aware variant of SecurityInfo.
func (*Server) SendMailContext ¶
func (*Server) ServerPermissionSeq ¶ added in v0.0.4
func (s *Server) ServerPermissionSeq() iter.Seq2[*ServerPermissionEntry, error]
ServerPermissionSeq returns an iterator over all server-level GRANT/DENY entries.
func (*Server) ServerPermissions ¶ added in v0.0.4
func (s *Server) ServerPermissions() ([]*ServerPermissionEntry, error)
ServerPermissions returns every server-level GRANT/DENY entry.
func (*Server) ServerPermissionsContext ¶ added in v0.0.4
func (s *Server) ServerPermissionsContext(ctx context.Context) ([]*ServerPermissionEntry, error)
ServerPermissionsContext is the context-aware variant of ServerPermissions.
func (*Server) ServerRoles ¶
func (s *Server) ServerRoles() ([]*ServerRole, error)
ServerRoles returns all fixed and user-defined server roles.
func (*Server) ServerRolesContext ¶
func (s *Server) ServerRolesContext(ctx context.Context) ([]*ServerRole, error)
ServerRolesContext is the context-aware variant of ServerRoles.
func (*Server) VerifyBackup ¶ added in v0.0.5
VerifyBackup checks that the backup set on device is complete and readable (RESTORE VERIFYONLY), without restoring it.
type ServerInfo ¶
type ServerInfo struct {
Name string
Edition string
ProductVersion string
ProductLevel string
VersionMajor int
VersionMinor int
VersionBuild int
Collation string
IsClustered bool
IsHADREnabled bool
IsSingleUser bool
EngineEdition int
OSVersion string
Platform string
MaxConnections int
PhysicalMemoryMB int64
LogicalCPUCount int
DefaultDataPath string
DefaultLogPath string
DefaultBackupPath string
}
ServerInfo holds basic information about the connected SQL Server instance.
type ServerMemoryStats ¶ added in v0.0.4
type ServerMemoryStats struct {
PhysicalMemoryMB int64
AvailableMemoryMB int64
TargetServerMemoryMB int64
TotalServerMemoryMB int64
}
ServerMemoryStats holds live memory figures for the Server Properties > Memory page's "Current values" section — unlike the configured min/max server memory (an sp_configure option, see ConfigurationOption), these reflect the server's actual memory state right now.
type ServerPermissionEntry ¶ added in v0.0.4
type ServerPermissionEntry struct {
Principal string
PrincipalType string // e.g. "SQL_LOGIN", "SERVER_ROLE"
Grantor string
Permission string // e.g. "CONNECT SQL", "ALTER ANY LOGIN", "CONTROL SERVER"
State string // "GRANT", "GRANT_WITH_GRANT_OPTION", "DENY"
}
ServerPermissionEntry is one GRANT/DENY entry recorded at server scope, as reported by sys.server_permissions — SSMS's Server Properties > Permissions page and a Login's Securables page.
type ServerRole ¶
ServerRole represents a server-level role.
type ServerSecurityInfo ¶ added in v0.0.4
type ServerSecurityInfo struct {
// AuthenticationMode is "WINDOWS" (Windows Authentication only) or
// "MIXED" (SQL Server and Windows Authentication).
AuthenticationMode string
}
ServerSecurityInfo holds server-wide authentication settings — SSMS's Server Properties > Security page. Login-audit level and the server proxy account live in the registry (xp_instance_regread), which gosmo deliberately does not touch (see README "Features intentionally excluded"); only what SERVERPROPERTY exposes is included here.
type ServerVersion ¶
type ServerVersion int
ServerVersion represents a SQL Server version.
const ( SQLServer2012 ServerVersion = 11 SQLServer2014 ServerVersion = 12 SQLServer2016 ServerVersion = 13 SQLServer2017 ServerVersion = 14 SQLServer2019 ServerVersion = 15 SQLServer2022 ServerVersion = 16 )
type SpaceInfo ¶
type SpaceInfo struct {
TotalMB float64
DataMB float64
LogMB float64
// UnallocatedMB is free space within the database's already-allocated
// data files (SSMS's Database Properties > General "Space available"),
// not free disk space — it can only shrink the database's on-disk
// footprint, not grow it, without a file autogrowth event.
UnallocatedMB float64
// AvailLogMB is the same free-space measure as UnallocatedMB, but for
// the log file(s) rather than the data file(s).
AvailLogMB float64
}
SpaceInfo holds space usage information for a database.
type Statistic ¶
type Statistic struct {
Name string
StatID int
IsAutoCreated bool
IsUserCreated bool
HasFilter bool
FilterDef string
LastUpdated time.Time
RowsSampled int64
TotalRows int64 // renamed from RowCount to avoid shadowing Table.RowCount()
Steps int
UnfilteredRows int64
// contains filtered or unexported fields
}
Statistic mirrors sys.stats for a table.
func (*Statistic) Drop ¶
Drop drops this statistic. Correct T-SQL syntax: DROP STATISTICS table_name.stat_name
type StoredProcedure ¶
type StoredProcedure struct {
ObjectID int
Schema string
Name string
Definition string
CreateDate time.Time
ModifyDate time.Time
}
StoredProcedure represents a stored procedure.
type Synonym ¶
type Synonym struct {
Name string
Schema string
ObjectID int
BaseObject string // fully qualified base object name
// contains filtered or unexported fields
}
Synonym mirrors sys.synonyms.
type Table ¶
type Table struct {
ObjectID int
Schema string
Name string
CreateDate time.Time
ModifyDate time.Time
HasReplicationFilter bool
IsMemoryOptimized bool
// contains filtered or unexported fields
}
Table mirrors Microsoft.SqlServer.Management.Smo.Table.
func (*Table) AddColumn ¶ added in v0.0.4
func (t *Table) AddColumn(col ColumnDefinition) error
AddColumn adds a new column to the table (ALTER TABLE ... ADD).
func (*Table) AddColumnContext ¶ added in v0.0.4
func (t *Table) AddColumnContext(ctx context.Context, col ColumnDefinition) error
AddColumnContext is the context-aware variant of AddColumn.
func (*Table) AlterColumn ¶ added in v0.0.4
func (t *Table) AlterColumn(col ColumnDefinition) error
AlterColumn changes an existing column's data type and/or nullability (ALTER TABLE ... ALTER COLUMN). Identity and default are not settable this way — SQL Server requires dropping and re-adding the column (identity) or the default constraint (DropColumn/AddColumn) for those.
func (*Table) AlterColumnContext ¶ added in v0.0.4
func (t *Table) AlterColumnContext(ctx context.Context, col ColumnDefinition) error
AlterColumnContext is the context-aware variant of AlterColumn.
func (*Table) CheckConstraints ¶
func (t *Table) CheckConstraints() ([]*CheckConstraint, error)
CheckConstraints returns all CHECK constraints on the table.
func (*Table) CheckConstraintsContext ¶
func (t *Table) CheckConstraintsContext(ctx context.Context) ([]*CheckConstraint, error)
CheckConstraintsContext is the context-aware variant of CheckConstraints.
func (*Table) ColumnSeq ¶
ColumnSeq returns an iterator over all columns in the table, in ordinal order.
func (*Table) ColumnsContext ¶
ColumnsContext is the context-aware variant of Columns.
func (*Table) CreateIndex ¶
func (t *Table) CreateIndex(req CreateIndexRequest) error
CreateIndex creates a new index on the table.
func (*Table) CreateIndexContext ¶
func (t *Table) CreateIndexContext(ctx context.Context, req CreateIndexRequest) error
func (*Table) CreateStatistic ¶
CreateStatistic creates a user-defined statistic on one or more columns.
func (*Table) CreateStatisticContext ¶
func (*Table) Detail ¶ added in v0.0.5
func (t *Table) Detail() (*TableDetail, error)
Detail returns TableDetail for the table.
func (*Table) DetailContext ¶ added in v0.0.5
func (t *Table) DetailContext(ctx context.Context) (*TableDetail, error)
DetailContext is the context-aware variant of Detail.
func (*Table) DropColumn ¶ added in v0.0.4
DropColumn drops a column from the table (ALTER TABLE ... DROP COLUMN), first dropping its default constraint, if it has one — SQL Server refuses to drop a column that a default constraint still references.
func (*Table) DropColumnContext ¶ added in v0.0.4
DropColumnContext is the context-aware variant of DropColumn.
func (*Table) ForeignKeySeq ¶
func (t *Table) ForeignKeySeq() iter.Seq2[*ForeignKey, error]
ForeignKeySeq returns an iterator over all foreign keys on the table.
func (*Table) ForeignKeys ¶
func (t *Table) ForeignKeys() ([]*ForeignKey, error)
ForeignKeys returns all foreign keys on the table.
func (*Table) ForeignKeysContext ¶
func (t *Table) ForeignKeysContext(ctx context.Context) ([]*ForeignKey, error)
ForeignKeysContext is the context-aware variant of ForeignKeys.
func (*Table) FragmentationStats ¶
func (t *Table) FragmentationStats(mode string) ([]*IndexFragmentation, error)
FragmentationStats returns fragmentation info for all indexes on the table. mode must be one of "LIMITED" (fast, default), "SAMPLED", or "DETAILED".
func (*Table) FragmentationStatsContext ¶
func (*Table) IndexesContext ¶
IndexesContext is the context-aware variant of Indexes.
func (*Table) PartitionSeq ¶ added in v0.0.5
func (t *Table) PartitionSeq() iter.Seq2[*PartitionInfo, error]
PartitionSeq returns an iterator over per-partition row counts for the table.
func (*Table) Partitions ¶
func (t *Table) Partitions() ([]*PartitionInfo, error)
Partitions returns per-partition row counts and compression for the table.
func (*Table) PartitionsContext ¶ added in v0.0.5
func (t *Table) PartitionsContext(ctx context.Context) ([]*PartitionInfo, error)
PartitionsContext is the context-aware variant of Partitions. A non-partitioned table still returns exactly one row (partition number 1), same as sys.partitions itself.
func (*Table) RebuildAllIndexes ¶
RebuildAllIndexes rebuilds all indexes on the table (ALTER INDEX ALL ... REBUILD).
func (*Table) RebuildAllIndexesContext ¶
func (*Table) RowCountContext ¶
RowCountContext is the context-aware variant of RowCount.
func (*Table) SpaceUsed ¶ added in v0.0.5
func (t *Table) SpaceUsed() (*TableSpaceInfo, error)
SpaceUsed returns space usage for the table.
func (*Table) SpaceUsedContext ¶ added in v0.0.5
func (t *Table) SpaceUsedContext(ctx context.Context) (*TableSpaceInfo, error)
SpaceUsedContext is the context-aware variant of SpaceUsed.
func (*Table) StatisticSeq ¶
StatisticSeq returns an iterator over all statistics on the table.
func (*Table) Statistics ¶
Statistics returns all statistics objects for the table.
func (*Table) StatisticsContext ¶
StatisticsContext is the context-aware variant of Statistics.
func (*Table) TriggerSeq ¶ added in v0.0.4
TriggerSeq returns an iterator over all DML triggers attached to the table.
func (*Table) TriggersContext ¶ added in v0.0.4
TriggersContext is the context-aware variant of Triggers.
func (*Table) TruncateTable ¶
TruncateTable truncates a table.
func (*Table) TruncateTableContext ¶
TruncateTableContext is the context-aware variant of TruncateTable.
func (*Table) UpdateAllStatistics ¶
UpdateAllStatistics updates all statistics on the table.
type TableChangeTracking ¶ added in v0.0.4
TableChangeTracking describes one user table's change tracking state.
type TableDetail ¶ added in v0.0.5
type TableDetail struct {
SchemaOwner string
LockEscalation string // e.g. "TABLE", "AUTO", "DISABLE"
UsesAnsiNulls bool
IsReplicated bool
IsTrackedByCDC bool
TemporalType string // e.g. "NON_TEMPORAL_TABLE", "SYSTEM_VERSIONED_TEMPORAL_TABLE"
Durability string // "SCHEMA_AND_DATA" or "SCHEMA_ONLY" — memory-optimized tables only
LedgerType string // e.g. "NON_LEDGER_TABLE", "APPEND_ONLY_LEDGER_TABLE"
PrimaryKeyName string // "" if the table has no primary key
DataSpace string // filegroup (or partition scheme) backing the heap/clustered index
}
TableDetail holds the sys.tables columns and related lookups Table itself doesn't carry (Table is also used to populate the Object Explorer tree and the scripter, so it stays lean) — SSMS's Table Properties > General page's "Object details" and "Dependencies" sections.
type TableSpaceInfo ¶ added in v0.0.5
type TableSpaceInfo struct {
ReservedKB int64
DataKB int64
IndexKB int64
LOBKB int64
UnusedKB int64
FileGroup string
}
TableSpaceInfo holds space usage for a table (SSMS's Table Properties > Storage page), mirroring the classic sp_spaceused breakdown: DataKB is the heap/clustered index's own row data, IndexKB is every other (nonclustered) index's row data, LOBKB is off-row large-object storage, and UnusedKB is reserved-but-not-yet-used space within already allocated extents.
type Trigger ¶
type Trigger struct {
Name string
TableName string
Schema string
IsEnabled bool
Events []string
Definition string
}
Trigger represents a DML trigger attached to a table.
type User ¶
type User struct {
Name string
ID int
UserType string // "SQL_USER", "WINDOWS_USER", "WINDOWS_GROUP", etc.
DefaultSchema string
AuthType string
CreateDate time.Time
ModifyDate time.Time
SID []byte
// LoginName is the server login this user's SID matches, or empty if
// none does — only populated by UserByNameContext (UsersContext's
// tree-listing query doesn't join sys.server_principals). A blank
// LoginName is ambiguous only by itself: check AuthType too — a
// genuine CREATE USER ... WITHOUT LOGIN reports AuthType "NONE",
// while a user created FOR LOGIN whose login was later dropped keeps
// AuthType "INSTANCE" with no matching login (i.e. orphaned) —
// verified live these two cases are in fact distinguishable, unlike
// what an earlier version of this comment assumed.
LoginName string
// LoginDisabled is only meaningful when LoginName is non-empty.
LoginDisabled bool
// contains filtered or unexported fields
}
User mirrors Microsoft.SqlServer.Management.Smo.User.
func (*User) Deny ¶
func (u *User) Deny(permission ObjectPermission, objectSchema, objectName string) error
Deny denies a permission on a schema-qualified object to the user.
func (*User) DenyContext ¶
func (*User) Grant ¶
func (u *User) Grant(permission ObjectPermission, objectSchema, objectName string) error
Grant grants a permission on a schema-qualified object to the user.
func (*User) GrantContext ¶
func (*User) RemoveFromRole ¶
RemoveFromRole removes the user from a database role.
func (*User) RenameContext ¶ added in v0.0.5
RenameContext is the context-aware variant of Rename.
func (*User) Revoke ¶
func (u *User) Revoke(permission ObjectPermission, objectSchema, objectName string) error
Revoke revokes a permission on a schema-qualified object from the user.
func (*User) RevokeContext ¶
func (*User) SetDefaultSchema ¶ added in v0.0.5
SetDefaultSchema changes the user's default schema.
func (*User) SetDefaultSchemaContext ¶ added in v0.0.5
SetDefaultSchemaContext is the context-aware variant of SetDefaultSchema.
Source Files
¶
- agent_job.go
- auth.go
- azuread_import.go
- backup.go
- bulkcopy.go
- catalog.go
- change_tracking.go
- database.go
- database_files.go
- database_options.go
- database_scoped_config.go
- dependency.go
- errors.go
- executionplan.go
- extended_properties.go
- helpers.go
- index.go
- iter.go
- kerberos.go
- login.go
- partition.go
- procedure.go
- query_store.go
- quoting.go
- retry.go
- schema_user.go
- script.go
- scripter.go
- search.go
- security.go
- sequence_synonym.go
- server.go
- server_config.go
- server_security.go
- statistics.go
- table.go
- types.go
Directories
¶
| Path | Synopsis |
|---|---|
|
Package main demonstrates every authentication method and major feature of the gosmo library.
|
Package main demonstrates every authentication method and major feature of the gosmo library. |
|
Package version holds gosmo's own version metadata, mirroring the same pattern gossms/internal/version/version.go uses.
|
Package version holds gosmo's own version metadata, mirroring the same pattern gossms/internal/version/version.go uses. |