วันพุธที่ 8 ธันวาคม พ.ศ. 2553

[SQL] select แถวรองสุดท้ายอย่างไร? (Sql server)

WITH temptable AS
(
select ROW_NUMBER() OVER(ORDER BY updt_tm DESC) AS 'ROWNUM',* from pcp_operator_tbl
)
select * from temptable
where ROWNUM between 6 and 6

วันพฤหัสบดีที่ 2 ธันวาคม พ.ศ. 2553

[SQL] การตั้งให้ run commandshell ผ่าน store procedure ได้

เช่น เราต้องการให้ Store Procedure ไปเรียก bat file ใดๆบนระบบ เพื่อกระทำการอะไรสักอย่าง
ถ้าไม่ไปอนุญาติก่อน จะไม่สามารถสั่งคำสั่งได้

เงื่อนไข
bat , exe ต้องอยู่บน server ที่รัน database นั้นไว้อยู่เท่านั้น

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

รันแล้ว จะอยู่ในสถานะ enable ให้รัน command shell ได้แล้ว

command สำหรับรัน command shell

DECLARE
@CMD AS VARCHAR(500)
SET @CMD = '"c:\execute.bat"'
EXEC master..xp_cmdshell @CMD

โดย @CMD คือ พาธของไฟล์ที่จะรัน เช่น c:\execute.bat

วันพุธที่ 1 ธันวาคม พ.ศ. 2553

[SQL] Store Procedure น่าใช้ #2

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'ชื่อตาราง'

ใช้ select เพื่อหาว่า ตารางใดๆ มีฟิลด์คอลั่มชื่ออะไรบ้าง

สะดวกดีครับ

[SQL] Store Procedure น่าใช้

-- ดูว่า Create ก่อนนี้ 60 วันครับ
SELECT name FROM sys.objects WHERE type = 'P'
AND DATEDIFF(D,create_date, GETDATE()) < 60

-- ดูว่า Update ก่อนนี้ 60 วันครับ
SELECT name,create_date,modify_date FROM sys.objects WHERE type = 'P'
AND DATEDIFF(D,modify_date, GETDATE()) < 60

อ้างอิงจาก : http://www.siamfocus.com/content.php?slide=9&content=88 ครับ
ขอบคุณครับ