Monday, January 22, 2024

Sütun Tipleri - VARCHAR - UNICODE Karakterler İçindir

Giriş
UNICODE olmayan normal karakterler İçindir

Örnek
Şöyle yaparız
CREATE TABLE ExampleTable (
    ExampleColumn VARCHAR(255)
);

INSERT INTO ExampleTable (ExampleColumn) VALUES
('Hello'),
('This is a longer string'),
('Short');

Saturday, December 2, 2023

Connection String

Örnek
unable to find valid certification path to requested target şeklinde bir hata alıyorsak connection string'e
encrypt=true;trustServerCertificate=true eklenir. Şöyle yaparız
jdbc:sqlserver://localhost:1433;encrypt=true;trustServerCertificate=true


Saturday, October 7, 2023

@@VERSION

Örnek
Şöyle yaparız
> SELECT @@VERSION;
2> GO
 
-------------------------------------------------------------------------------------
Microsoft SQL Server 2022 (RC1) - 16.0.950.9 (X64)
	Sep 13 2022 13:09:32
	Copyright (C) 2022 Microsoft Corporation
	Developer Edition (64-bit) on Linux (Ubuntu 20.04.5 LTS) <X64>

(1 rows affected)

sqlcmd komutu

Kurulum
Örnek
Şöyle yaparız
brew install mssql-tools
Seçenekler
-S: Server anlamına gelir. Başlanılacak bilgisayarı belirtir
-U : Kullanıcıyı belirtir
-P : Şifreyi belirtir

-S Seçeneği
Örnek
Şöyle yaparız
sqlcmd -S 192.168.0.17,1443 -U SA -P 'Rpassw!1'

Örnek
Şöyle yaparız
$ sqlcmd -S localhost -U SA -P 'Rpassw!1'

Docker ve SQL Server

Giriş

MSSQL_USER - Kullanıcı İsmi
SA verilir

MSSQL_SA_PASSWORD - Şifre
Verilen şifre en az 8 karakter olmalı. Şu dört kümeden üç tanesine ait bir karakter içermeli
1. Büyük harf
2. Küçük harf 
3. Rakam
4. Sembol

Docker image içinden /opt/mssql-tools/bin/sqlcmd yolundaki komut aracı kullanılabilir 

Örnek
Şöyle yaparız
docker run -e "ACCEPT_EULA=1" -e "MSSQL_SA_PASSWORD=MyPass@word" -e "MSSQL_PID=Developer" -e "MSSQL_USER=SA" -p 1433:1433 -d --name=sql mcr.microsoft.com/mssql/server
DBeaver'da 
Host : localhost
Port : 1433
Database = master
Kullanıcı ismi =  sa 
Şifre = MyPass@word

olarak bağlanırız


Monday, September 11, 2023

WITH READPAST

Giriş
Açıklaması şöyle
READPAST skips through rows that are locked for update by other transactions but ONLY when the query you execute is about to get blocked on locked rows. So READPAST doesn’t skip locked rows on normal select queries because it can read from a snapshot (MVCC)
Örnek
Tabloda 1,2,3,4,5 satırları olsun. Şöyle yaparız
-- run transaction 1 and don’t commit;
BEGIN TRANSACTION;

UPDATE T SET F = 100 WHERE F = 1


-- in another transaction do
SELECT * FROM T WITH (READPAST)
Burada sonuç olarak 2,3,4,5 alırız. 1 numaralı satır atlandı

Şöyle yaparız
BEGIN TRANSACTION;
UPDATE T WITH (READPAST) SET F = 900 WHERE F < 10;
Burada 2,3,4,5 numaralı satırla güncellenir ama 1 numaralı satır atlanır.  Aynı şeyi şöyle de yapabiliriz
BEGIN TRANSACTION;

UPDATE T

SET F = 900 WHERE F IN( SELECT F FROM T WITH READPAST WHERE F < 10) 
Ama şöyle yapsaydık bloke olurdu. Çünkü WITH READPAST kullanılmadı
BEGIN TRANSACTION;

UPDATE T

SET F = 900 WHERE F < 10;

Monday, September 4, 2023

sa Kullanıcısı - Administrator

SQL Server kurulunca genellikle sa isimli bir administrator kullanıcı yaratılır

Sütun Tipleri - VARCHAR - UNICODE Karakterler İçindir

Giriş UNICODE olmayan normal karakterler İçindir Örnek Şöyle yaparız CREATE TABLE ExampleTable (     ExampleColumn VARCHAR(255) ); INSERT IN...