About
This howto shows you how to:
- start an sqlserver database with the sqlserver howto docker service
- and use the @sqlserver default howto sqlserver connection in tabul commands.
Steps
Docker Installation
howto docker services are an easy way to start locally a database instance.
Because howto services are docker services, you should have docker installed on your computer.
Check the service
By default, the user configuration vault is created with the howto docker services.
You can check if the sqlserver service is present and see its attributes with:
- the tabul service info command
- or the configuration vault
tabul service info sqlserver
Information about the service (sqlserver)
Attribute Value Description
----------- ----------------------------------------------------- --------------------------
COMMAND The command
ENVIRONMENT {ACCEPT_EULA=Y, MSSQL_SA_PASSWORD=TheSecret1!} The environment attributes
IMAGE mcr.microsoft.com/mssql/server:2022-CU19-ubuntu-22.04 The image
IS_STARTED true The status of the service
NAME sqlserver The name of the service
ORIGIN CONF The origin of the system
PORTS 1433:1433 The ports
TYPE docker The type of the system
VOLUMES The volumes
tabul data print --type text .tabul/.tabul.yml@home | yq '.spec.services.sqlserver'
environment:
ACCEPT_EULA: Y
MSSQL_SA_PASSWORD: TheSecret1!
image: mcr.microsoft.com/mssql/server:2022-CU19-ubuntu-22.04
ports:
- 1433:1433
type: docker
If the service is not present move or delete your user configuration vault file.
Note on the password restriction
This service is based on the Official SqlServer and the password should follow the SQL Server default password policy
- at least 8 characters long
- contain characters from three of the following four sets:
- Uppercase letters,
- Lowercase letters,
- Base 10 digits,
- and Symbols.
That's why we have chosen TheSecret1! and a basic welcome password.
Start the sqlserver service
To start the docker service, you can use
- the tabul service start command
- or the docker command
This service is based on the Official SqlServer Docker image.
tabul service start sqlserver
1 service was started
Name Type
--------- ------
sqlserver docker
You can use start the local database with the following Bash command :
docker run \
-e MSSQL_SA_PASSWORD=TheSecret1! \
-e ACCEPT_EULA=Y \
-p 1433:1433 \
-d \
--name sqlserver \
mcr.microsoft.com/mssql/server:2022-CU18-ubuntu-22.04
docker run ^
-e MSSQL_SA_PASSWORD=TheSecret1! ^
-e ACCEPT_EULA=Y ^
-p 1433:1433 ^
-d ^
--name sqlserver ^
mcr.microsoft.com/mssql/server:2022-CU18-ubuntu-22.04
Check that you can ping/connect to the service with the connection
tabul connection ping sqlserver
The connection (sqlserver) has been pinged successfully
Connection Info
By default, the user configuration vault is created with the howto docker services.
You can check the service with the tabul service info command
tabul connection info sqlserver
Information about the connection (sqlserver)
Attribute Value Description
-------------------------- ------------------------------------------------------------------------ --------------------------------------------------------------------
BOOLEAN_DATA_TYPE Native Boolean data type used to store boolean values
BUILDER_CACHE_ENABLED true Enable or disable the builder cache
CHAR_DEFAULT_PRECISION 1 Default CHAR precision
COMMENT The default sqlserver connection A connection description
DATABASE_MAJOR_VERSION The major version number of the database
DATABASE_MINOR_VERSION The minor version number of the database
DATABASE_PRODUCT_NAME The name of the database
DATABASE_PRODUCT_VERSION The version of the database
DATE_DATA_TYPE NATIVE Date data type used to store date values
DRIVER com.microsoft.sqlserver.jdbc.SQLServerDriver The jdbc driver class
DRIVER_NAME The driver name
DRIVER_VERSION The driver version
HOST Host Server
JDBC_MAJOR_VERSION The major version number of JDBC
JDBC_MINOR_VERSION The minor version number of JDBC
LOGIN_STATEMENTS Statements that runs after a connection has been established
MAX_CONCURRENT_THREAD The maximum number of threads that can be created against the system
MAX_NAME_IN_PATH The maximum number of names in a path
NAME sqlserver The name of the connection
NAME_QUOTING_DISABLED_CASE UPPERCASE The case to apply when quoting is disabled
NAME_QUOTING_ENABLED true Enable quoting of names
NATIVES Native Driver attributes (jdbc properties, ...)
NCHAR_DEFAULT_PRECISION 1 Default NCHAR precision
NVARCHAR_DEFAULT_PRECISION 0 Default NVARCHAR precision
ORIGIN CONF The origin of the connection
PASSWORD TheSecret1! The user password
PORT 1433 Host Port
SUPPORT_BATCH_UPDATES If the system supports batch SQL updates
SUPPORT_NAMED_PARAMETERS If the system supports named parameters in the SQL statement
TIMESTAMP_DATA_TYPE NATIVE Timestamp data type used to store timestamp values
TIME_DATA_TYPE NATIVE Time format data type to store time values
URI jdbc:sqlserver://localhost:1433;encrypt=true;trustServerCertificate=true The uri of the connection
USER sa The user name
VARCHAR_DEFAULT_PRECISION 0 Default VARCHAR precision
WORKING_PATH master.dbo. The working path (Schema for database, directory for file system)
You can also check the connection attributes with the configuration vault
tabul data print --type text .tabul/.tabul.yml@home | yq '.spec.connections.sqlserver'
comment: The default sqlserver connection
driver: com.microsoft.sqlserver.jdbc.SQLServerDriver
password: TheSecret1!
uri: jdbc:sqlserver://localhost:1433;encrypt=true;trustServerCertificate=true
user: sa
If the connection is not present, move or delete your user configuration vault file.
Use the sqlserver connection
You then can use the @sqlserver connection in place of any other connection
Example:
- replacing the @sqlite connection by the @sqlserver
# with sqlite
# tabul data upsert characters.csv@howto @sqlite
# with sqlserver
tabul data upsert characters.csv@howto @sqlserver
# with sqlite
# tabul data list *@sqlite
# with sqlserver
tabul data list *@sqlserver
path media_type
---------- ----------
characters table
In particularly, you can follow:
- and all SQL howto (Sql Table, Sql View, …)
Stop the sqlserver service
Once, you don't need the sqlserver service, you can stop it:
- with the tabul service stop command
- or with Docker
tabul service stop sqlserver
1 service was stopped
Name Type
--------- ------
sqlserver docker
You can also stop it with Docker
docker stop sqlserver