A nicer way of doing this is to use NULLIF like this:
[code type=sql]Percentage = 100 * ClubTotal / NULLIF(AttTotal, 0)
https://docs.microsoft.com/en-us/sql/t-sql/language-elements/nullif-transact-sql
A nicer way of doing this is to use NULLIF like this:
[code type=sql]Percentage = 100 * ClubTotal / NULLIF(AttTotal, 0)
https://docs.microsoft.com/en-us/sql/t-sql/language-elements/nullif-transact-sql
I recently ran to a situation on a development machine where I absolutely needed to use a given password in SQL Server and although the provided password was quite long…and impossible to guess…it was still not considered a strong password due to lack of special characters…so I got prompted with the following error:
“Password validation failed. The password does not meet Windows policy requirements because it is not complex enough. (Microsoft SQL Server, Error: 15118)”
The validation requirement process is not part of SQL Server per se, but rather part of Window’s Local Security Policy.
To fix it I went to “Administrative Tools” and launched “Local Security Policy”.
From there: Security Settings –> Account Policies –> Password Policy
And attempted to disable “Password must meet complexity requirements”…but I wasn’t allowed to modify it as it was locked / grayed out / inactive, and wouldn’t let me change its value, due to a policy enforced through the company’s domain.
I would not recommend modifying these security settings on a production, stage or shared server environments where sensitive data might reside. But this wasn’t the case this time.
There is still a way to disable this setting without going through Domain Administrator, who would not even consider your request anyways.
1) Launch command prompt, as Administrator if possible
2) Type secedit /export /cfg c:\somefolder\local.cfg
3) Launch Notepad. Open local.cfg to edit.
4) Where it says “PasswordComplexity=1”, change 1 to 0.
5) While you are here, you could also set the minimum length requirements lower or higher with the “MinimumPasswordLength” key.
6) Save and Close Notepad.
7) At the command prompt, type “secedit /configure /db %windir%\security\local.sdb /cfg c:\somefolder\local.cfg /areas SECURITYPOLICY
8) Close and re-launch “Local Security Policy” window, or just refresh its values.
9) Done…now you can set your less complex, less secure password!
Written by Ramin Haghighat
I found the following techniques helpful:
Make sure your database engine is configured to accept remote connections:
- Start > All Programs > SQL Server 2005 > Configuration Tools > SQL Server Surface Area Configuration
- Click on Surface Area Configuration for Services and Connections
- Select the instance that is having a problem > Database Engine > Remote Connections
- Enable local and remote connections
- Restart instance
You may need to create an exception on the firewall for the SQL Server instance and port you are using:
- Start > Run > Firewall.cpl
- Click on exceptions tab
- Add sqlservr.exe (typically located in
C:\Program Files (x86)\Microsoft SQL Server\MSSQL.x\MSSQL\Bin
, check your installs for the actual folder path) and port (default is1433
)- Check your connection string as well
Check if your SQL server services is up and running properly:
- Go to All Programs > Microsoft SQL Server 2008 > Configuration Tools > SQL Server Configuration Manager > SQL Server Services
- Check to make sure SQL Server service status is Running.
In addition, ensure that your remote server is in the same network. Run
sqlcmd -L
to ascertain if your server is included in your network list.
Enable TCP/IP in SQL Server Configuration
When two or more SQL Servers are connected across network they do all communication using TCP/IP. The default port of SQL Server installation is 1433. This port can be changed through SQL Server Configuration Manager. TCP/IP should be enabled for SQL Server to be connected.
- Go to All Programs >> Microsoft SQL Server 2008 >> Configuration Tools >> SQL Server Configuration Manager >> Select TCP/IP
- Right Click on TCP/IP >> Click on Enable
You must restart SQL Server Services for all the changes to take effect. Right click and go to menu properties to select location where default port of SQL Server can be changed.
[code type=sql]
USE [master]
RESTORE DATABASE [BANCO] FROM DISK = N’C:\Compartilhamento\banco_backup’ WITH FILE = 1, MOVE N’VMD_DATA’ TO N’E:\SqlServer2016\MSSQL13.SQL2016\MSSQL\DATA\BANCO.mdf’, MOVE N’BANCO_LOG’ TO N’E:\SqlServer2016\MSSQL13.SQL2016\MSSQL\DATA\BANCO.ldf’, NOUNLOAD, STATS = 5, CONTINUE_AFTER_ERROR;
GO
[code type=sql]
BACKUP DATABASE AdventureWorks2012
TO DISK = ‘Z:\SQLServerBackups\AdvWorksData.bak’
WITH CHECKSUM, CONTINUE_AFTER_ERROR;
GO
FreeTDS is a set of libraries for Unix and Linux that allows your programs to natively talk to Microsoft SQL Server and Sybase databases.
Technically speaking, FreeTDS is an open source implementation of the TDS (Tabular Data Stream) protocol used by these databases for their own clients. It supports many different flavors of the protocol and three APIs to access it. Additionally FreeTDS works with other software such as Perl and PHP, providing access from those languages as well. If you are looking for a Java implementation, we refer you to the jTDS project on SourceForge. FreeTDS has many possible uses. It has been used by Unix/Linux webservers to present data stored in SQL Server to the web, to port SQL Server database code from NT to Unix, to import data into SQL Server from a Unix source, and to provide database access on platforms (such as realtime systems) that have no native drivers. The FreeTDS C libraries are available under the terms of the GNU LGPL license. Consult COPYING.LIB in the distribution for details. |
File name: config_freetds_linux.sh
sudo apt-get install wget
sudo apt-get install build-essential
sudo apt-get install libc6-dev
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.00.27.tar.gz
tar -xzf freetds-1.00.27.tar.gz
cd freetds-1.00.27
./configure --prefix=/usr/local --with-tdsver=7.3
make
sudo make install
mssql -u sa -p PASSWORD -s IP -o PORT
use master
create database DATABASE
.run script.sql
In December 2016 Microsoft made their SQL Server database available in Linux. Here we’ll cover how to install and perform basic setup of MSSQL in the Ubuntu distribution of Linux.
First we’ll set up the repository file, Microsoft provide a copy of this for Ubuntu here: https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list
We’ll use the wget command to copy this file to the /etc/apt/sources.list.d directory so that we can use it using apt-get. After this we run ‘apt-get update’ in order to sync the package index files with the new source that we’ve just added.
root@ubuntu:~# wget https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list -O /etc/apt/sources.list.d/mssql-server.list root@ubuntu:~# apt-get update
At the time of writing, the 16.10 directory at https://packages.microsoft.com/ubuntu/16.10/mssql-server/ was empty, so I have instead used the 16.04 files here which seems to have worked just fine.
Now that the repository file is in place, installation is as simple as running the following command. At the time of writing the total size of the package and all dependencies was a 747mb download.
root@ubuntu:~# apt-get install mssql-server -y ... +-------------------------------------------------------------------+ | Please run /opt/mssql/bin/sqlservr-setup to complete the setup of | | Microsoft(R) SQL Server(R). | +-------------------------------------------------------------------+
Once the installation has completed, we are advised to run the /opt/mssql/bin/sqlservr-setup bash script to complete the setup process.
During my first installation attempt, I got the following error as my virtual machine was only running with 2GB of memory, so be sure that you have enough memory before proceeding.
sqlservr: This program requires a machine with at least 3250 megabytes of memory. Microsoft(R) SQL Server(R) setup failed with error code 1.
You’ll be able to proceed once you have adequate memory available.
root@ubuntu:~# /opt/mssql/bin/sqlservr-setup Microsoft(R) SQL Server(R) Setup You can abort setup at anytime by pressing Ctrl-C. Start this program with the --help option for information about running it in unattended mode. The license terms for this product can be downloaded from http://go.microsoft.com/fwlink/?LinkId=746388 and found in /usr/share/doc/mssql-server/LICENSE.TXT. Do you accept the license terms? If so, please type "YES": YES Please enter a password for the system administrator (SA) account: Please confirm the password for the system administrator (SA) account: Setting system administrator (SA) account password... Do you wish to start the SQL Server service now? [y/n]: y Do you wish to enable SQL Server to start on boot? [y/n]: y Created symlink /etc/systemd/system/multi-user.target.wants/mssql-server.service â /lib/systemd/system/mssql-server.service. Created symlink /etc/systemd/system/multi-user.target.wants/mssql-server-telemetry.service â /lib/systemd/system/mssql-server-telemetry.service. Setup completed successfully.
That’s it, Microsoft SQL Server is now running successfully and listening for traffic on TCP port 1434.
root@ubuntu:~# systemctl status mssql-server â mssql-server.service - Microsoft(R) SQL Server(R) Database Engine Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2016-12-30 22:55:23 AEDT; 33s ago Main PID: 4164 (sqlservr) CGroup: /system.slice/mssql-server.service ââ4164 /opt/mssql/bin/sqlservr ââ4201 /opt/mssql/bin/sqlservr root@ubuntu:~# netstat -antp | grep 1434 tcp 0 0 127.0.0.1:1434 0.0.0.0:* LISTEN 4201/sqlservr
In order to actually connect to the server from Linux we need to install the mssql-tools package, which comes from a different repository than the one that we just set up. It can be found here: https://packages.microsoft.com/config/ubuntu/16.04/prod.list
First we’ll download a copy of the prod.list file and place it into the /etc/apt/sources.list.d directory.
root@ubuntu:~# wget https://packages.microsoft.com/config/ubuntu/16.04/prod.list -O /etc/apt/sources.list.d/pord.list root@ubuntu:~# apt-get update
We can now proceed with installing the mssql-tools package, as shown below.
root@ubuntu:~# apt-get install mssql-tools -y
Once this is installed we can use the sqlcmd command to interact with the database. To see how to run sqlcmd, simply run it with the -? option for help.
Unfortunately it appears that when you specify the -P option for the password, the password must be provided in the command line with no option of being prompted for it later. Keep in mind that your password will be stored in your bash history running it this way.
root@ubuntu:~# sqlcmd -U SA -P password 1> create database test; 2> go 1> use test; 2> go Changed database context to 'test'. 1> create table websites(domain varchar(255)); 2> go 1> insert into websites (domain) 2> values ('rootusers.com'); 3> go (1 rows affected) 1> select domain 2> from websites; 3> go domain rootusers.com (1 rows affected)
In this example we create a test database with a table named websites and a column for domain names. We then insert a domain name and pull it back out with select, confirming both that we are able to connect and that basic SQL queries appear to be working as expected.
Microsoft’s SQL Server is now available for installation on Linux. Personally I don’t think I’ll ever use this over other alternatives such as MariaDB or PostgreSQL, so hopefully someone somewhere actually finds this information useful!
https://www.rootusers.com/how-to-install-microsoft-sql-server-on-ubuntu-linux