เราสามารถดูค่า (แถวและเซลล์) ในตัวแปรที่มีค่าเป็นตารางใน SQL Server Management Studio (SSMS) ในช่วงเวลาดีบั๊กหรือไม่ ถ้าใช่เป็นอย่างไร
เราสามารถดูค่า (แถวและเซลล์) ในตัวแปรที่มีค่าเป็นตารางใน SQL Server Management Studio (SSMS) ในช่วงเวลาดีบั๊กหรือไม่ ถ้าใช่เป็นอย่างไร
คำตอบ:
ยังไม่ได้ใช้งานตามลิงก์ Microsoft Connect นี้: Microsoft Connect
DECLARE @v XML = (SELECT * FROM <tablename> FOR XML AUTO)
แทรกคำสั่งด้านบนตรงจุดที่คุณต้องการดูเนื้อหาของตาราง เนื้อหาของตารางจะแสดงเป็น XML ในหน้าต่างท้องถิ่นหรือคุณสามารถเพิ่มลง@v
ในหน้าต่างเฝ้าดู
DECLARE @v nvarchar(max) = (SELECT * FROM <tablename> FOR JSON AUTO)
โครงการนี้https://github.com/FilipDeVos/sp_selectมีขั้นตอนการจัดเก็บsp_select
ที่อนุญาตให้เลือกจากตารางชั่วคราว
การใช้งาน:
exec sp_select 'tempDb..#myTempTable'
ในขณะที่การดีบักกระบวนการที่เก็บไว้คุณสามารถเปิดแท็บใหม่และเรียกใช้คำสั่งนี้เพื่อดูเนื้อหาของตาราง temp
ในกระบวนงานที่เก็บไว้สร้างตารางชั่วคราวส่วนกลาง ## ล่อลวงและเขียนแบบสอบถามแทรกภายในกระบวนงานที่เก็บไว้ซึ่งแทรกข้อมูลในตารางของคุณลงในตารางชั่วคราวนี้
เมื่อเสร็จแล้วคุณสามารถตรวจสอบเนื้อหาของตารางชั่วคราวโดยเปิดหน้าต่างแบบสอบถามใหม่ เพียงใช้ "select * จาก ## ล่อลวง"
เพียงใช้แบบสอบถามแบบใช้เลือกข้อมูลเพื่อแสดง varialble ของตารางที่คุณต้องการตรวจสอบ
http://www.simple-talk.com/sql/learn-sql-server/management-studio-improvements-in-sql-server-2008/
หากคุณใช้ SQL Server 2016 หรือใหม่กว่าคุณสามารถเลือกเป็นผลลัพธ์ JSON และแสดงใน JSON Visualizer ได้ง่ายกว่าอ่านใน XML และให้คุณกรองผลลัพธ์
DECLARE @v nvarchar(max) = (SELECT * FROM Suppliers FOR JSON AUTO)
ฉันได้ข้อสรุปว่าสิ่งนี้เป็นไปไม่ได้หากไม่มีปลั๊กอินใด ๆ
SQL Server Profiler 2014 แสดงเนื้อหาของพารามิเตอร์ค่าของตาราง อาจทำงานในรุ่นก่อนหน้าเช่นกัน เปิดใช้งาน SP: การเริ่มต้นหรือ RPC: เหตุการณ์ที่เสร็จสมบูรณ์ในกลุ่มกระบวนงานที่เก็บไว้และคอลัมน์ TextData และเมื่อคุณคลิกที่รายการในบันทึกคุณจะมีคำสั่งแทรกสำหรับตัวแปรตาราง จากนั้นคุณสามารถคัดลอกข้อความและเรียกใช้ใน Management Studio
ตัวอย่างผลลัพธ์:
declare @p1 dbo.TableType
insert into @p1 values(N'A',N'B')
insert into @p1 values(N'C',N'D')
exec uspWhatever @PARAM=@p1
ทำไมไม่เลือกตารางและดูตัวแปรแบบนั้น?
SELECT * FROM @d
SELECT * FROM @Table
สคริปต์ที่กำลังดีบั๊กจะไม่ส่งผลลัพธ์ไปที่หน้าต่างผลลัพธ์
ขอโทษนะฉันมาสายนิดหน่อยสำหรับงานปาร์ตี้ แต่สำหรับใครก็ตามที่สะดุดกับคำถามนี้ในภายหลังฉันพบวิธีที่ง่ายที่สุดในการจัดเก็บคือ:
คำตอบของ messi19 ควรเป็นที่ยอมรับ IMHO หนึ่งเนื่องจากมันง่ายกว่าของฉันและทำงานเป็นส่วนใหญ่แต่ถ้าคุณชอบฉันและมีตัวแปรตารางภายในวงที่คุณต้องการตรวจสอบนี่ทำงานได้ดี โดยไม่ต้องใช้ความพยายามมากเกินไปหรือปลั๊กอิน SSMS ภายนอก