Monday, September 4, 2023
sa Kullanıcısı - Administrator
SQL Server kurulunca genellikle sa isimli bir administrator kullanıcı yaratılır
Tuesday, August 22, 2023
Sütun Tipleri - FLOAT
Giriş
SQL Server'da DOUBLE diye bir sütun tip yok. Onun yerine FLOAT var. Açıklaması şöyle
float (n) : The n parameter indicates whether the field should hold 4 or 8 bytes. float(24) holds a 4-byte field and float(53) holds an 8-byte field. Default value of n is 53.
Yani FLOAT(24), FLOAT(53) veya kısaca sadece FLOAT şeklinde kullanılabilir.
Aslında bu isimlendirme bence yanlış ve karışıklığa sebep oluyor. Çünkü diğer programlama dillerinden FLOAT başka bir anlama geliyor.
Tuesday, August 8, 2023
Sütun Tipleri - DATETIME - Time Zone Bilmez
Giriş
Not: Bu sütun tipi yerine datetime2 kullanılması öneriliyor. datetime2 kesin milisaniye ve microsaniye saklayabiliyor
Açıklaması şöyle
The DATETIME data type specifies a date and time with fractional seconds.DATETIME supports dates from January 1, 1753, through December 31, 9999.The default value is 1900-01-01 00:00:00. The time is based on 24-hour clock.
Format şöyle
yyyy-MM-dd HH:mm:ss[.nnn]
nnn 0 to 999 arasında bir sayı olabilir. Yani milisaniyeyi temsil eder. Ancak milisaniye kısmı aslında yuvarlanır. Açıklaması şöyle
datetime rounds fractional seconds to the nearest 0, 3, or 7 milliseconds.
Örnek
DATETIME tipini DATE tipine çevirmek için şöyle yaparız
SELECT * FROM table1 a INNER JOIN table2 b ON a.id = b.a_id AND CONVERT(date, a.dt) = CONVERT(date, b.dt)
Thursday, June 22, 2023
Deadlock
Örnek
Şöyle yaparız
-- Transaction ABEGIN;UPDATE Orders SET Quantity = Quantity - 1 WHERE OrderID = 1;-- Now Transaction A needs to update CustomersUPDATE Customers SET TotalOrders = TotalOrders + 1 WHERE CustomerID = 1;COMMIT;-- Transaction BBEGIN;UPDATE Customers SET TotalOrders = TotalOrders - 1 WHERE CustomerID = 1;-- Now Transaction B needs to update OrdersUPDATE Orders SET Quantity = Quantity + 1 WHERE OrderID = 1;COMMIT;
Açıklaması şöyle
In this example, if Transaction A and Transaction B are executed concurrently and the timing is such that Transaction A locks the Orders table and Transaction B locks the Customers table before either has a chance to commit, a deadlock will occur.
Monday, April 3, 2023
Sunday, April 2, 2023
TestContainers MSSQLServerContainer Sınıfı
Maven
Şöyle yaparız
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mssqlserver</artifactId>
<version>1.18.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>11.2.2.jre8</version>
<scope>test</scope>
</dependency>Örnek
Şöyle yaparız
@Container
private static final MSSQLServerContainer<?> SQLSERVER_CONTAINER =
new MSSQLServerContainer<>("mcr.microsoft.com/mssql/server:2022-latest").acceptLicense();acceptLicense metodu
Örnek
Şöyle yaparız
MSQLServerContainer mssqlserver = new MSSQLServerContainer<>(...).acceptLicense();
getDatabaseName metodu
UnsupportedOperationException fırlatıyor. Neden bilmiyorum
withDatabaseName metodu
UnsupportedOperationException fırlatıyor. Neden bilmiyorum
withUrlParam metodu
Örnek
Şöyle yaparız
MSSQLServerContainer<> container = new MSSQLServerContainer<>("mcr.microsoft.com/mssql/server:2017-CU12"); container.withUrlParam("user", container.getUsername()) .withUrlParam("password", container.getPassword()); container.start(); String jdbcUrl = container.getJdbcUrl();
withStartupCheckStrategy metodu
Şöyle yaparız
new MSSQLServerContainer<>("mcr.microsoft.com/mssql/server:2017-latest").withStartupCheckStrategy(new MinimumDurationRunningStartupCheckStrategy(Duration.ofSeconds(5)));
Testcontainers JDBC URL Kullanımı
Giriş
src/test/resources/container-license-acceptance.txt dosyası yaratılır. Dosyada
mcr.microsoft.com/mssql/server:2017-CU12
veya
mcr.microsoft.com/mssql/server:latest
cümlesi yazar
Örnek
Şöyle yaparız
<dependency> <groupId>org.testcontainers</groupId> <artifactId>mssqlserver</artifactId> <version>1.17.6</version> <scope>test</scope> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>11.2.2.jre8</version> <scope>test</scope> </dependency>
Şöyle yaparız
String jdbcUrl = "jdbc:tc:sqlserver:latest:///mydbName"; try (Connection conn = DriverManager.getConnection(jdbcUrl)) { ... }
Şöyle yaparız
String jdbcUrl = "jdbc:tc:sqlserver:2017-CU12:///mydbName"; try (Connection conn = DriverManager.getConnection(jdbcUrl)) { ... }
Subscribe to:
Posts (Atom)
VSS vs. VDI Backup
Giriş İlk olarak burada gördüm 1.Volume Shadow Copy Service (VSS) Sanırım Windows diskin kopyasını alıyor 2. Virtual Device Interface (VDI)...
-
Giriş Açıklaması şöyle Columnstore mantığı temelinde basit: rowstore’da satır satır saklarız, columnstore’da kolon kolon. 1 milyarlık fact...
-
Giriş src/test/resources/container-license-acceptance.txt dosyası yaratılır. Dosyada mcr.microsoft.com/mssql/server:2017-CU12 veya mcr.mi...
-
Giriş 1. Snapshot Replication 2. Transactional Replication 3. Merge Replication

