วันอังคารที่ 31 ธันวาคม พ.ศ. 2567

Simple Script SQL server backup แบบ เร็วๆ

 -- source: https://www.MSSQLTips.com

-- https://www.mssqltips.com/sqlservertip/1070/simple-script-to-backup-all-sql-server-databases/

DECLARE @name NVARCHAR(256) -- database name  

DECLARE @path NVARCHAR(512) -- path for backup files  

DECLARE @fileName NVARCHAR(512) -- filename for backup  

DECLARE @fileDate NVARCHAR(40) -- used for file name

 

-- specify database backup directory

SET @path = 'C:\test\'  

 

-- specify filename format

SELECT @fileDate = CONVERT(NVARCHAR(20),GETDATE(),112) 

 

DECLARE db_cursor CURSOR READ_ONLY FOR  

SELECT name 

FROM master.sys.databases 

WHERE name NOT IN ('master','model','msdb','tempdb')  -- exclude these databases

AND state = 0 -- database is online

AND is_in_standby = 0 -- database is not read only for log shipping

 

OPEN db_cursor   

FETCH NEXT FROM db_cursor INTO @name   

 

WHILE @@FETCH_STATUS = 0   

BEGIN   

   SET @fileName = @path + @name + '_' + @fileDate + '.BAK'  

   BACKUP DATABASE @name TO DISK = @fileName  

 

   FETCH NEXT FROM db_cursor INTO @name   

END   

 

CLOSE db_cursor   

DEALLOCATE db_cursor

วันอังคารที่ 24 ธันวาคม พ.ศ. 2567

SQL server ทั้ง ตัวเต็มและ localdb ลงไม่ได้ เพราะ harddisk มี Sector size มากกว่า 4K

เป็นปัญหา สำหรับเครื่องรุ่นใหม่ กับ Sql server 2019-... ลงได้ และ Start ไม่ได้ จาก Sector size >4Kให้แก้ Registry ตาม Link นี้



https://learn.microsoft.com/en-us/troubleshoot/sql/database-engine/database-file-operations/troubleshoot-os-4kb-disk-sector-size


ดูขนาด Sector
fsutil fsinfo sectorinfo <volume pathname>


คำสั่ง registry จาก CMD
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes" /t   REG_MULTI_SZ /d "* 4095" /f

REG QUERY "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes"

คำสั่ง Validate ว่า ใช้ได้




วันอังคารที่ 3 ธันวาคม พ.ศ. 2567

วันพุธที่ 18 กันยายน พ.ศ. 2567

Mongo compass query

 

find postfix

{

  "originalFileName": {

    "$regex": "\\.zip",

    "$options": "i"

  }

}


is exist

{ "originalFileName": { "$exists": true } }

วันเสาร์ที่ 17 สิงหาคม พ.ศ. 2567

Set Visual studio 202x และ dotnet core netcore 8 ไม่ Append output path

 ให้เปิด .csproj และ เพิ่ม 

<PropertyGroup>

   <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>

   <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>

 </PropertyGroup>


วันพฤหัสบดีที่ 1 สิงหาคม พ.ศ. 2567

Set sql server 2019 ให้ ทำงานกับ JSON data

 ต้อง Set database ทีทำงานให้ support ก่อน

ALTER DATABASE MYDB SET COMPATIBILITY_LEVEL = 130


CREATE TABLE [dbo].[Orders](

[OrderID] [int] NOT NULL,

[CustomerName] [nvarchar](50) NULL,

[OrderDetails] [nvarchar](max) NULL)



INSERT INTO Orders (OrderID, CustomerName, OrderDetails)

VALUES (1, 'John test', 

'{"items": [{"name": "Widget", "quantity": 2}, 

            {"name": "Gizmo", "quantity": 4}], 

  "total": 99.99}')


INSERT INTO Orders (OrderID, CustomerName, OrderDetails)

VALUES (2, 'betty ok', 

'{"items": [{"name": "Pen", "quantity": 3}, 

            {"name": "Gizmo", "quantity": 2}], 

  "total": 88}')


ทดสอบ query

SELECT *

FROM Orders

WHERE EXISTS (

   SELECT *

   FROM OPENJSON(OrderDetails, '$.items')

   WHERE JSON_VALUE(value, '$.name') = 'Widget'

)

        

วันอาทิตย์ที่ 30 มิถุนายน พ.ศ. 2567