วันอังคารที่ 6 พฤษภาคม พ.ศ. 2557
command line Ad Hoc Win7
netsh wlan set hostednetwork mode=allow ssid=KHotspot key=didAKIN0274
netsh wlan start hostednetwork
วันอังคารที่ 8 เมษายน พ.ศ. 2557
ตัวอย่าง command Select case when then else end
SELECT
CONVERT(varchar, CASE StatusTo
WHEN 1 THEN 'Open จัดสินค้ารอส่ง'
WHEN 2 THEN 'Process ส่งออกจากคลัง'
WHEN 3 THEN 'Pending ค้างส่ง'
WHEN 4 THEN 'Close ปิดส่งของ'
WHEN 6 THEN 'CreaOrder สร้างคำสั่งส่งของ'
WHEN 7 THEN 'NewPrint เตรียมรถจัดส่ง'
WHEN 8 THEN 'Cancel ยกเลิก'
WHEN 9 THEN 'POD Close รถส่งของถึงคลัง'
WHEN 10 THEN 'POD Process'
WHEN 11 THEN 'IOD Update ส่งสินค้าเรียบร้อย'
ELSE 'Unknow'
END ) as Status
,StatusDate, StatusTime, UserName, WHReference, CusRefer, LoadNO
, (case StatusTo WHEN 9 THEN 'ได้รับสินค้าเรียบร้อย' ELSE 'ดำเนินการ' end ) as Result
FROM dbo.TRLog
WHERE (WHReference = LTRIM(RTRIM('it-test001')))
ORDER BY StatusDate ASC, WHReference ASC
CONVERT(varchar, CASE StatusTo
WHEN 1 THEN 'Open จัดสินค้ารอส่ง'
WHEN 2 THEN 'Process ส่งออกจากคลัง'
WHEN 3 THEN 'Pending ค้างส่ง'
WHEN 4 THEN 'Close ปิดส่งของ'
WHEN 6 THEN 'CreaOrder สร้างคำสั่งส่งของ'
WHEN 7 THEN 'NewPrint เตรียมรถจัดส่ง'
WHEN 8 THEN 'Cancel ยกเลิก'
WHEN 9 THEN 'POD Close รถส่งของถึงคลัง'
WHEN 10 THEN 'POD Process'
WHEN 11 THEN 'IOD Update ส่งสินค้าเรียบร้อย'
ELSE 'Unknow'
END ) as Status
,StatusDate, StatusTime, UserName, WHReference, CusRefer, LoadNO
, (case StatusTo WHEN 9 THEN 'ได้รับสินค้าเรียบร้อย' ELSE 'ดำเนินการ' end ) as Result
FROM dbo.TRLog
WHERE (WHReference = LTRIM(RTRIM('it-test001')))
ORDER BY StatusDate ASC, WHReference ASC
วันอังคารที่ 14 มกราคม พ.ศ. 2557
Reset ค่าของ Identity Column ใน SQL Server
Reset ค่าของ Identity Column ใน SQL Server
ถ้าคุณเป็นคนหนึ่ง ที่ใช้ Identity column ในตารางบน SQL Server คุณสามารถที่จะกำหนดให้มันเริ่มค่าตรงไหนก็ได้ที่คุณต้องการนะครับ อย่างเช่น ถ้าคุณต้องการที่จะเริ่มค่าที่ 1000 แทนที่จะเป็น 1 คุณก็สามารถที่จะใช้คำสั่งแบบนี้ครับ
DBCC CHECKIDENT (orders, RESEED, 999)
ค่าถัดไปที่มันจะใช้ มันจะเป็น Reseed + 1 ครับ จากที่เรากำหนดให้ Reseed เป็น 999 ค่าที่จะได้ครั้งต่อไปก็คือ 1000 ครับ
อย่างในตัวอย่างเวลาที่เราทำการ Insert ข้อมูลเข้าไปที่เทเบิล orders เราจะได้ค่าใน column ที่กำหนดให้เป็น Identity column เป็น 1000 ครับ
ลองใช้ดูครับ ผมลองแล้ว Work…
ถ้าคุณเป็นคนหนึ่ง ที่ใช้ Identity column ในตารางบน SQL Server คุณสามารถที่จะกำหนดให้มันเริ่มค่าตรงไหนก็ได้ที่คุณต้องการนะครับ อย่างเช่น ถ้าคุณต้องการที่จะเริ่มค่าที่ 1000 แทนที่จะเป็น 1 คุณก็สามารถที่จะใช้คำสั่งแบบนี้ครับ
DBCC CHECKIDENT (orders, RESEED, 999)
ค่าถัดไปที่มันจะใช้ มันจะเป็น Reseed + 1 ครับ จากที่เรากำหนดให้ Reseed เป็น 999 ค่าที่จะได้ครั้งต่อไปก็คือ 1000 ครับ
อย่างในตัวอย่างเวลาที่เราทำการ Insert ข้อมูลเข้าไปที่เทเบิล orders เราจะได้ค่าใน column ที่กำหนดให้เป็น Identity column เป็น 1000 ครับ
ลองใช้ดูครับ ผมลองแล้ว Work…
เพิ่มประสิทธิภาพ ของ SQL Server DB
เพิ่มประสิทธิภาพ ของ SQL Server DB
Posted on 15/05/2012
เริ่มด้วยการย้าย TempDB
เราทำการย้าย TempDB ไปยัง Disk อื่น ที่ไม่ใช่ Disk ที่ใช้ติดตั้ง SQL Server เพื่อเพิ่มประสิทธฺิภาพในการอ่าน/เขียน ให้มากขึ้น
โดยเราจะทำการย้ายไปยังไดรฟ์ E: ครับ
ทำได้ยังไง
พิมพ์ Script ด้านล่างนี้ครับ
use master;
go
alter database tempdb
modify file (name = tempdev, filename = ‘e:\temp\tempdb.mdf’);
go
alter database tempdb
modify file (name = templog, filename = ‘e:\temp\templog.ldf’);
เมื่อเสร็จแล้วจะได้ Message คล้าย ๆ กับข้างล่างนี้ แปลว่าเสร็จสิ้นการย้าย แต่จะต้องทำการ Restart Database ก่อน จึงจะใช้ได้ครับ
The file “tempdev” has been modified in the system catalog. The new path will be used the next time the database is started.
The file “templog” has been modified in the system catalog. The new path will be used the next time the database is started.
พอเวลาที่เราใช้ DB ไปนาน ๆ แล้วข้อมูลจะเยอะขึ้นและทำให้มีปัญหาในการเข้าถึงข้อมูลที่ต้องการ หรือง่าย ๆ ก็คือมันช้านั้นเอง
ดังนั้นเราจึงควรที่จะทำ
ทำการ Reindex Table
วิธีนี้เราจะสามารถทำได้ทีละ Table นะครับ โดยจะต้องทำดังนี้
use Northwind ;
go
dbcc dbreindex (customers)
go
แล้วจะได้ Message ประมาณนี้ แปลว่าเสร็จพิธี
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Posted on 15/05/2012
เริ่มด้วยการย้าย TempDB
เราทำการย้าย TempDB ไปยัง Disk อื่น ที่ไม่ใช่ Disk ที่ใช้ติดตั้ง SQL Server เพื่อเพิ่มประสิทธฺิภาพในการอ่าน/เขียน ให้มากขึ้น
โดยเราจะทำการย้ายไปยังไดรฟ์ E: ครับ
ทำได้ยังไง
พิมพ์ Script ด้านล่างนี้ครับ
use master;
go
alter database tempdb
modify file (name = tempdev, filename = ‘e:\temp\tempdb.mdf’);
go
alter database tempdb
modify file (name = templog, filename = ‘e:\temp\templog.ldf’);
เมื่อเสร็จแล้วจะได้ Message คล้าย ๆ กับข้างล่างนี้ แปลว่าเสร็จสิ้นการย้าย แต่จะต้องทำการ Restart Database ก่อน จึงจะใช้ได้ครับ
The file “tempdev” has been modified in the system catalog. The new path will be used the next time the database is started.
The file “templog” has been modified in the system catalog. The new path will be used the next time the database is started.
พอเวลาที่เราใช้ DB ไปนาน ๆ แล้วข้อมูลจะเยอะขึ้นและทำให้มีปัญหาในการเข้าถึงข้อมูลที่ต้องการ หรือง่าย ๆ ก็คือมันช้านั้นเอง
ดังนั้นเราจึงควรที่จะทำ
ทำการ Reindex Table
วิธีนี้เราจะสามารถทำได้ทีละ Table นะครับ โดยจะต้องทำดังนี้
use Northwind ;
go
dbcc dbreindex (customers)
go
แล้วจะได้ Message ประมาณนี้ แปลว่าเสร็จพิธี
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Insert ข้อมูลหลาย ๆ Record ใน Statement เดียว
Insert ข้อมูลหลาย ๆ Record ใน Statement เดียว
ผมเกิดคำถามขึ้นมาว่า ถ้าหากเราต้องการที่จะ Insert ข้อมูลหลาย ๆ Record ใน SQL Server โดยการเขียนคำสั่งแค่คำสั่งเดียว มันจะทำได้ไหม
คำตอบก็คือ “ได้” ครับ มาลองดูกันว่ามันจะทำได้ยังไง
ข้อมูลที่จะ Insert มีอยู่ด้วยกัน 4 ชุดครับ
(‘ADM’, ‘Administrator’)
(‘USR’, ‘User’)
(‘TRN’, ‘Training’)
(‘REC’, ‘Recruit’)
วิธีที่ ๑ ใช้การ Insert แบบปกติ
1: USE YourDB
2: GO
3: INSERT INTO MyTable (FirstCol, SecondCol)
4: VALUES ('ADM', 'Administrator');
5: INSERT INTO MyTable (FirstCol, SecondCol)
6: VALUES ('USR', 'User');
7: INSERT INTO MyTable (FirstCol, SecondCol)
8: VALUES ('TRN', 'Training');
9: INSERT INTO MyTable (FirstCol, SecondCol)
10: VALUES ('REC', 'Recruit');
11: GO
วิธีที่ ๒ ใช้ Union all ครับ
USE YourDB
1: INSERT INTO MyTable (FirstCol, SecondCol)
2: SELECT 'ADM' ,'Administrator'
3: UNION ALL
4: SELECT 'USR' ,'User'
5: UNION ALL
6: SELECT 'TRN' ,'Training'
7: UNION ALL
8: SELECT 'REC' ,'Recruit'
9: GO
วิธีที่ ๓ วิธีนี้ทำได้ใน SQL 2008 Server เท่านั้นนะครับ
1: insert into MyTable values('ADM', 'Administrator'),
2: ('USR', 'User'),
3: ('TRN', 'Training'),
4: ('REC', 'Recruit');
ลองนำไปใช้ดูนะครับ
ผมเกิดคำถามขึ้นมาว่า ถ้าหากเราต้องการที่จะ Insert ข้อมูลหลาย ๆ Record ใน SQL Server โดยการเขียนคำสั่งแค่คำสั่งเดียว มันจะทำได้ไหม
คำตอบก็คือ “ได้” ครับ มาลองดูกันว่ามันจะทำได้ยังไง
ข้อมูลที่จะ Insert มีอยู่ด้วยกัน 4 ชุดครับ
(‘ADM’, ‘Administrator’)
(‘USR’, ‘User’)
(‘TRN’, ‘Training’)
(‘REC’, ‘Recruit’)
วิธีที่ ๑ ใช้การ Insert แบบปกติ
1: USE YourDB
2: GO
3: INSERT INTO MyTable (FirstCol, SecondCol)
4: VALUES ('ADM', 'Administrator');
5: INSERT INTO MyTable (FirstCol, SecondCol)
6: VALUES ('USR', 'User');
7: INSERT INTO MyTable (FirstCol, SecondCol)
8: VALUES ('TRN', 'Training');
9: INSERT INTO MyTable (FirstCol, SecondCol)
10: VALUES ('REC', 'Recruit');
11: GO
วิธีที่ ๒ ใช้ Union all ครับ
USE YourDB
1: INSERT INTO MyTable (FirstCol, SecondCol)
2: SELECT 'ADM' ,'Administrator'
3: UNION ALL
4: SELECT 'USR' ,'User'
5: UNION ALL
6: SELECT 'TRN' ,'Training'
7: UNION ALL
8: SELECT 'REC' ,'Recruit'
9: GO
วิธีที่ ๓ วิธีนี้ทำได้ใน SQL 2008 Server เท่านั้นนะครับ
1: insert into MyTable values('ADM', 'Administrator'),
2: ('USR', 'User'),
3: ('TRN', 'Training'),
4: ('REC', 'Recruit');
ลองนำไปใช้ดูนะครับ
สมัครสมาชิก:
บทความ (Atom)