คำถามติดแท็ก table-variable

12
ความแตกต่างระหว่างโต๊ะ temp และตัวแปร table ใน SQL Server คืออะไร?
ใน SQL Server 2005 เราสามารถสร้าง temp tables หนึ่งในสองวิธี: declare @tmp table (Col1 int, Col2 int); หรือ create table #tmp (Col1 int, Col2 int); ความแตกต่างระหว่างสองสิ่งนี้คืออะไร? ฉันได้อ่านความคิดเห็นที่ขัดแย้งกันว่า @tmp ยังคงใช้ tempdb หรือไม่หรือทุกอย่างเกิดขึ้นในหน่วยความจำ ในสถานการณ์ใดที่ไม่สามารถทำได้อีก

8
เลือกเข้าสู่ตัวแปรตารางใน T-SQL
มีคิวรี SELECT ที่ซับซ้อนซึ่งฉันต้องการแทรกแถวทั้งหมดลงในตัวแปรตาราง แต่ T-SQL ไม่อนุญาต ในบรรทัดเดียวกันคุณไม่สามารถใช้ตัวแปรตารางที่มีคำสั่ง SELECT INTO หรือ INSERT EXEC http://odetocode.com/Articles/365.aspx ตัวอย่างสั้น ๆ : declare @userData TABLE( name varchar(30) NOT NULL, oldlocation varchar(30) NOT NULL ) SELECT name, location INTO @userData FROM myTable INNER JOIN otherTable ON ... WHERE age > 30 ข้อมูลในตัวแปรตารางจะถูกนำมาใช้ในภายหลังเพื่อแทรก / อัปเดตกลับเข้าไปในตารางที่แตกต่างกัน เป้าหมายของการทำเช่นนี้คือการทำให้สคริปต์อ่านง่ายขึ้นและสามารถปรับแต่งได้ง่ายกว่าทำSELECT INTOในตารางที่ถูกต้องโดยตรง ประสิทธิภาพไม่ใช่ปัญหาเนื่องจากrowcountมีขนาดค่อนข้างเล็กและทำงานด้วยตนเองเมื่อจำเป็นเท่านั้น …

6
เมื่อใดที่ฉันควรใช้ตัวแปรตารางเทียบกับตารางชั่วคราวในเซิร์ฟเวอร์ sql
ฉันเรียนรู้รายละเอียดเพิ่มเติมในตัวแปรตาราง มันบอกว่าตาราง temp อยู่บนดิสก์เสมอและตัวแปรของตารางอยู่ในหน่วยความจำกล่าวคือประสิทธิภาพของตัวแปรตารางดีกว่าตาราง temp เนื่องจากตัวแปรตารางใช้การดำเนินการ IO น้อยกว่าตาราง temp แต่บางครั้งถ้ามีเร็กคอร์ดมากเกินไปในตัวแปรตารางที่ไม่สามารถมีอยู่ในหน่วยความจำตัวแปรของตารางจะถูกวางลงบนดิสก์เช่นตารางอุณหภูมิ แต่ฉันไม่รู้ว่า "บันทึกมากเกินไป" คืออะไร 100,000 บันทึก หรือ 1,000,000 บันทึก ฉันจะทราบได้อย่างไรว่าตัวแปรตารางที่ฉันใช้อยู่ในหน่วยความจำหรือบนดิสก์? มีฟังก์ชั่นหรือเครื่องมือใด ๆ ใน SQL Server 2005 เพื่อวัดมาตราส่วนของตัวแปรตารางหรือแจ้งให้ฉันทราบเมื่อตัวแปรตารางถูกวางลงบนดิสก์จากหน่วยความจำ?

3
การสร้างดัชนีในตัวแปรตาราง
คุณสามารถสร้างดัชนีบนตัวแปรตารางใน SQL Server 2000 ได้หรือไม่? กล่าวคือ DECLARE @TEMPTABLE TABLE ( [ID] [int] NOT NULL PRIMARY KEY ,[Name] [nvarchar] (255) COLLATE DATABASE_DEFAULT NULL ) ฉันสามารถสร้างดัชนีได้Nameหรือไม่


6
ฉันจะวางตัวแปรตารางใน SQL-Server ได้อย่างไร ฉันควรทำสิ่งนี้หรือไม่?
ฉันมีตัวแปรตารางในสคริปต์ (ไม่ใช่โพรซีเดอร์ที่เก็บไว้) สองคำถาม: ฉันจะวางตัวแปรตารางได้อย่างไร Drop Table @varName ให้ข้อผิดพลาด "ไม่ถูกต้อง snytax" ฉันควรทำสิ่งนี้เสมอหรือไม่? ฉันได้ยินว่ามันเป็นแนวทางปฏิบัติที่ดี มันจำเป็นมากสำหรับสคริปต์ขนาดเล็กเช่นนี้หรือไม่? นี่คือรหัสของฉัน: Declare @projectList table( name varchar(40) NOT NULL); Insert Into @projectList Values ('BCR-00021') Select * From @projectList Drop Table @projectList -- does not work
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.