โพสต์นี้จะแสดงเคล็ดลับสคริปต์บางอย่างเกี่ยวกับ MS SQL Server
1. รอก่อน
คำสั่ง WAITFOR ถูกระบุด้วยหนึ่งในสองส่วนคำสั่ง:
(1) คีย์เวิร์ด DELAY ตามด้วยระยะเวลาก่อนที่จะกรอกคำสั่ง WAITFOR ให้สมบูรณ์ เวลาที่ต้องรอก่อนที่จะกรอกคำสั่ง WAITFOR อาจนานถึง 24 ชั่วโมง ตัวอย่างเช่น,
-- รอสิบวินาทีก่อนที่จะดำเนินการเลือกคำสั่ง
รอล่าช้า '00:00:10'
เลือก EmployeeID จาก Northwind.dbo.Employees
(2) คีย์เวิร์ด TIME ตามด้วยเวลาในการดำเนินการ ซึ่งระบุความสมบูรณ์ของคำสั่ง WAITFOR
ตัวอย่างเช่น,
-- รอจนถึง 22.00 น. เพื่อทำการตรวจสอบฐานข้อมูล pubs เพื่อให้แน่ใจว่าเพจทั้งหมดได้รับการจัดสรรและใช้อย่างถูกต้อง
ใช้ผับ
เริ่ม
เวลารอ '22:00'
DBCC เช็คคอลล็อค
END
2. เปิดใช้งานการดีบัก SQL
-- ขั้นตอนการจัดเก็บ SP_SDIDEBUG ถูกใช้โดย SQL Server สำหรับการดีบักคำสั่ง Transact-SQL
ใช้ต้นแบบ
ให้สิทธิ์ดำเนินการบน SP_SDIDEBUG ให้กับชื่อผู้ใช้
3 ดำเนินการสตริงที่สร้างขึ้นแบบไดนามิก
(1) คำสั่งดำเนินการ
ด้วยคำสั่ง EXECUTE ค่าพารามิเตอร์ทั้งหมดจะต้องแปลงเป็นอักขระหรือ Unicode และเป็นส่วนหนึ่งของสตริง Transact-SQL ตัวอย่างเช่น,
ประกาศ @IntVariable INT
ประกาศ @SQLString NVARCHAR (500)
/* สร้างและดำเนินการสตริงที่มีค่าพารามิเตอร์เดียว -
SET @IntVariable = 35
SET @SQLString = N'SELECT * จาก pubs.dbo.employee โดยที่ job_lvl = ' +
นักแสดง(@IntVariable AS NVARCHAR (10))
EXEC(@SQLString)
/* สร้างและดำเนินการสตริงด้วยค่าพารามิเตอร์ที่สอง -
SET @IntVariable = 201
SET @SQLString = N'SELECT * จาก pubs.dbo.employee โดยที่ job_lvl = ' +
นักแสดง(@IntVariable AS NVARCHAR (10))
EXEC(@SQLString)
(2) SP_ExecuteSQL
แนะนำให้ใช้ sp_executesql แทนการใช้คำสั่ง EXECUTE เพื่อดำเนินการสตริง การสนับสนุนสำหรับการทดแทนพารามิเตอร์ไม่เพียงแต่ทำให้ sp_executesql มีความหลากหลายมากกว่า EXECUTE เท่านั้น แต่ยังทำให้ sp_executesql มีประสิทธิภาพมากขึ้นด้วย เนื่องจากสร้างแผนการดำเนินการที่มีแนวโน้มว่าจะถูกนำกลับมาใช้ใหม่โดย SQL Server
sp_executesql รองรับการตั้งค่าพารามิเตอร์แยกจากสตริง Transact-SQL:
DECLARE @IntVariable INT
ประกาศ @SQLString NVARCHAR (500)
ประกาศ @ParmDefinition NVARCHAR(500)
/* สร้างสตริง SQL หนึ่งครั้ง -
SET @SQLString =
N'SELECT * จาก pubs.dbo.employee โดยที่ job_lvl = @level'
/* ระบุรูปแบบพารามิเตอร์หนึ่งครั้ง -
SET @ParmDefinition = N'@level Tinyint'
/* ดำเนินการสตริงด้วยค่าพารามิเตอร์แรก -
SET @IntVariable = 35
ดำเนินการ sp_executesql @SQLString, @ParmDefinition,
@level = @IntVariable
/* ดำเนินการสตริงเดียวกันกับค่าพารามิเตอร์ที่สอง -
SET @IntVariable = 32
ดำเนินการ sp_executesql @SQLString, @ParmDefinition,
@level = @IntVariable
4. SP_HelpText
พิมพ์ข้อความของกฎ ค่าเริ่มต้น หรือขั้นตอนการจัดเก็บที่ไม่ได้เข้ารหัส ฟังก์ชันที่ผู้ใช้กำหนด ทริกเกอร์ หรือมุมมอง
-- ตัวอย่างนี้แสดงข้อความของทริกเกอร์ Employee_insupd ซึ่งอยู่ในฐานข้อมูล pubs
ใช้ผับ
Exec sp_helptext 'employee_insupd'