วิธีแก้ไขข้อมูลในตารางผลลัพธ์ใน SQL Server Management Studio


96

ฉันต้องการแก้ไขค่าแถวบางค่าเมื่อฉันได้รับผลลัพธ์แบบสอบถามในตารางผลลัพธ์ จริงอยู่ที่เราสามารถคลิกขวาที่ตารางและพูดว่าเปิดตารางเพื่อรับเอาต์พุตตารางที่แก้ไขได้ แต่สิ่งที่ฉันต้องการคือเอาต์พุตคิวรีที่แก้ไขได้เฉพาะบางแถวที่ตรงกับเกณฑ์ของฉันและแก้ไขในตารางผลลัพธ์

สิ่งนี้สามารถทำได้ภายใน Microsoft SQL Server Management Studio Express หรือไม่


1
ทำเครื่องหมายว่าซ้ำกับstackoverflow.com/questions/1535469/… ? นอกจากนี้ยังมีโซลูชันที่ใช้งานได้เต็มรูปแบบ
Brad

3
@ แบรด - คำตอบสำหรับคำถามที่เชื่อมโยงจะใช้ได้เฉพาะในกรณีที่คุณใช้ตารางเดียวคือไม่มีการรวม เมื่อคุณเริ่มเข้าร่วม 2 หรือ 3 ตารางคุณจะไม่สามารถทำได้อีกต่อไป มันจะน่าสนใจถ้ามีวิธีแก้ไขอื่น ๆ
Francis Rodgers

2
อ่านคำตอบของ @Yves A Martin ด้านล่างสำหรับทางเลือกในการแก้ไขตารางที่เข้าร่วม
jaredbaszler

คำตอบ:


87

คุณสามารถทำสิ่งที่คล้ายกับสิ่งที่คุณต้องการได้ คลิกขวาที่ตารางและเลือก "แก้ไข 200 แถวบนสุด" (ถ้าคุณใช้ SQL Server 2008) หรือ "เปิดตาราง" ใน SQL Server 2005 เมื่อคุณไปถึงที่นั่นจะมีปุ่มด้านบนที่เขียนว่า "SQL"; เมื่อคุณคลิกมันจะช่วยให้คุณสามารถเขียนคำสั่ง SQL และคุณสามารถแก้ไขผลลัพธ์ของมันได้หากคุณคลิกเซลล์ที่คุณต้องการเปลี่ยนแปลง


1
นี่คือปี 2019 เวอร์ชันล่าสุดคือ SSMS 2017 ยังคงใช้แนวทางเดียวกันในการแก้ไขเซลล์กริด! การออกแบบ UI ที่แย่มาก!
S.Serpooshan

78

ใช่นี่เป็นไปได้ คลิกขวาที่ตารางและคลิกEdit Top 200 Rowsตามที่แสดงในภาพด้านล่าง

ป้อนคำอธิบายภาพที่นี่

จากนั้นคลิกที่ใดก็ได้ในตารางผลลัพธ์เพื่อเปิดใช้งานSQLIcon "Show Sql Pane" สิ่งนี้จะเปิดตัวแก้ไข sql สำหรับตารางที่คุณเลือกแก้ไขที่นี่คุณสามารถเขียนคิวรี sql ของคุณเองจากนั้นคุณสามารถแก้ไขชุดผลลัพธ์ของแบบสอบถามได้โดยตรง

ป้อนคำอธิบายภาพที่นี่


25

วิธีที่คุณสามารถทำได้คือ:

  • เปลี่ยนข้อความค้นหาของคุณให้เป็นมุมมอง
  • คลิกขวาที่มุมมองและเลือกEdit All Rows (คุณจะได้รับตารางค่าที่คุณสามารถแก้ไขได้แม้ว่าค่าจะมาจากตารางที่ต่างกันก็ตาม

คุณยังสามารถเพิ่มทริกเกอร์แทรก / อัปเดตในมุมมองของคุณซึ่งจะช่วยให้คุณสามารถดึงค่าจากฟิลด์มุมมองของคุณจากนั้นใช้ T-SQL เพื่อจัดการการอัปเดตของตารางหลาย ๆ ตาราง


1
+1 - นี่เป็นวิธีที่ดีที่สุดและง่ายที่สุดในการแก้ไขตารางที่เข้าร่วม แม้ว่านี่จะเป็นงานที่มากเกินไปที่จะทำงานนี้ให้สำเร็จ แต่ก็เป็นวิธีเดียวที่ฉันสามารถทำได้
jaredbaszler

คุณไม่สามารถแก้ไขตารางที่เข้าร่วมได้ เฉพาะคำสั่ง JOIN SQL ที่ไม่ใช่ เซลล์ทั้งหมดของฉันไม่สามารถแก้ไขได้เมื่อฉันเข้าร่วม
Charles Robertson

20

SSMS - คลิกขวาผลลัพธ์ของ Edit 200 | ตัวเลือก | บานหน้าต่าง | SQL - แก้ไขคำสั่ง


SSMS 2014 ข้ามขั้นตอน "ตัวเลือก"
Denise Skidmore

17

ไม่ไม่มีวิธีใดที่คุณจะแก้ไขตารางผลลัพธ์ได้ ตารางผลลัพธ์ส่วนใหญ่มีไว้เพื่อแสดงวัตถุประสงค์ของแบบสอบถามที่คุณดำเนินการ

ด้วยเหตุผลที่ว่าทุกคนสามารถดำเนินการค้นหาที่ซับซ้อนได้ หวังว่าสำหรับรุ่นถัดไปพวกเขาจะรวมฟังก์ชันประเภทนี้ไว้ด้วย

ฉันหวังว่าจะตอบคำถามของคุณ


6
ฉันไม่เห็นว่าทำไมคนถึงโหวตคำตอบของคุณ มันถูกต้องจริง เมื่อคุณใช้การเข้าร่วมในแบบสอบถามของคุณแล้วคุณจะไม่สามารถแก้ไขผลลัพธ์โดยใช้วิธีการที่แนะนำในคำตอบใด ๆ จนถึงตอนนี้ +1 จากฉัน
Francis Rodgers

คุณสามารถคัดลอกแบบสอบถามไปยังบานหน้าต่างแก้ไขตาราง SQL ซึ่งเป็นคำตอบอื่น ๆ ที่กล่าวถึง
Denise Skidmore

17

คำตอบที่ระบุยังคงใช้ได้ ไม่มีการเปลี่ยนแปลง SSMS (SQL Server 2016) ในเรื่องนั้น

คุณยังสามารถใช้บานหน้าต่างเกณฑ์หลังจากดำเนินการ "แก้ไข 200 แถวบนสุด"

แก้ไขเมนูบริบท 200 อันดับแรก

  1. แสดงบานหน้าต่างเกณฑ์
  2. ป้อนเกณฑ์บางอย่าง
  3. แก้ไขข้อมูลโดยตรงในตารางผลลัพธ์

เปิดบานหน้าต่างเกณฑ์

นอกจากนี้จำนวนแถวสำหรับคำสั่งเหล่านั้นสามารถปรับแต่งได้ในตัวเลือก SSMS ของคุณ

ป้อนคำอธิบายภาพที่นี่


10

อัปเดต
ตามที่คุณเห็นวิธีแก้ปัญหาที่ถูกต้องในคำตอบสำหรับการเรียนรู้ในการจัดการเซิร์ฟเวอร์ SQL ปี 2014 คุณสามารถ
1. คลิกที่ " แก้ไข 200 แถวบนสุด "
จากนั้น
2. คลิกที่ " แสดงบานหน้าต่าง SQL (ctrl + 3) "
และ
3. การลบ TOP ( 200)จากแบบสอบถามที่เลือก


อ้างถึงคำตอบของ Shen Lance ไม่มีวิธีแก้ไขผลลัพธ์ของแบบสอบถามที่เลือก และคำตอบอื่น ๆ เป็นเพียงการเลือกปกติและสำหรับ 200 ระเบียนเท่านั้น


6

เพียงเลือก "แก้ไข 200 แถวบนสุด" กด Ctrl + 3 ในพื้นที่แก้ไขตาราง (หรือคลิก "แสดงบานหน้าต่าง SQL") และแก้ไขแบบสอบถาม ...

แต่โปรดทราบว่าจะใช้ได้เฉพาะกับข้อความค้นหาที่ไม่มี "join"


โอ้โห.. ขอบคุณมาก! ช่วยประหยัดเวลาของฉันได้มาก
Kunal

5

ใช่คุณสามารถแก้ไขผลลัพธ์ที่เข้าร่วมได้ (อย่างน้อยใน SSMS 2008 R2) หลังจากคุณแก้ไขค่าผลลัพธ์ใด ๆ ในมุมมองที่ใช้การรวมคุณจะต้องดำเนินการค้นหาอีกครั้งเพื่อรีเฟรชผลลัพธ์

คุณต้องตรวจสอบให้แน่ใจว่าได้กำหนดค่า SSMS เพื่อให้ "แก้ไขทุกแถว" ... สามารถทำได้ใน SSMS - เครื่องมือ | ตัวเลือก | SQL Server Object Explorer | คำสั่ง ... ขยายตารางและตัวเลือกมุมมอง ... ใส่ค่าเป็น 0 ใน "ค่าสำหรับคำสั่ง Edit Top n Rows" ... สามารถทำได้เพื่อเลือกด้วย

คำตอบของ Yves A Martin ถูกต้อง 100%!

ปล้น


4

ก่อนอื่นให้คลิกขวาที่เรื่องเลือก 'Edit All Rows' เลือก 'Query Designer -> Pane -> SQL' หลังจากนั้นคุณสามารถแก้ไขผลลัพธ์แบบสอบถามในตารางได้


3

หากคุณจำเป็นต้องทำการแก้ไขในเซลล์บนฐานข้อมูล SQL บ่อยๆHeidiSQL จะทำงานได้ดีไม่สามารถใช้งานได้ง่ายกว่านี้และเป็นฟรี / โอเพ่นซอร์ส (ยอมรับการบริจาค)

เดิมเขียนขึ้นสำหรับ MySQL ตอนนี้สามารถจัดการ SQL Server ได้แล้วและมีการสนับสนุน PostgreSQL แบบทดลอง (ณ ส.ค. 2014) ด้วย


3

คลิกขวาที่ตารางใดก็ได้ใน dB ที่คุณสนใจหรือฐานข้อมูลใด ๆ ในเซิร์ฟเวอร์โดยใช้ master หากมีการรวมหรือใช้หลาย dB เลือก "แก้ไข 200 แถวบนสุด" เลือกปุ่ม "SQL" ในแถบงาน คัดลอกและวางรหัสของคุณทับรหัสที่มีอยู่แล้วเรียกใช้อีกครั้ง ตอนนี้คุณสามารถแก้ไขชุดผลลัพธ์ของแบบสอบถามของคุณได้ เหล้าเชร์ริ ;-)


ที่ช่วย Lit.
Asad Ali

ฉันหวังเป็นอย่างยิ่งว่าสิ่งนี้จะได้ผลสำหรับฉัน แต่การสืบค้นของฉันมี where clause และทำให้เกิด 0 ผลลัพธ์ในมุมมองนี้ ในมุมมองมาตรฐานจะส่งคืนรายการ
Matt Becker

2

หากแบบสอบถามเขียนเป็นมุมมองคุณสามารถแก้ไขมุมมองและอัปเดตค่าได้ ไม่สามารถอัปเดตค่าได้สำหรับทุกมุมมอง เป็นไปได้เฉพาะสำหรับมุมมองที่เฉพาะเจาะจง ดูการแก้ไขข้อมูลผ่านดูลิงค์ MSDNสำหรับข้อมูลเพิ่มเติม คุณสามารถสร้างมุมมองสำหรับแบบสอบถามและแก้ไข 200 แถวตามที่ระบุด้านล่าง:

ป้อนคำอธิบายภาพที่นี่


ทำไมจึงมีการโหวตเชิงลบที่นี่ คำถามไม่ได้เจาะจงเฉพาะการแก้ไขตาราง คำถามคือเราจะแก้ไขตารางผลลัพธ์สำหรับผลลัพธ์แบบสอบถามใด ๆ ที่เขาได้รับได้อย่างไร ฉันแนะนำถ้าเป็นไปได้เขาสามารถสร้างมุมมองสำหรับแบบสอบถามและแก้ไขแถวได้
Venkataraman R

0
  1. เพื่อความชัดเจน: ตัวเลือก "ค่าสำหรับคำสั่งแก้ไขแถวบนสุด" ไม่มีส่วนเกี่ยวข้องกับข้อเท็จจริงที่ว่าชุดผลลัพธ์สามารถแก้ไขได้หรือไม่ มันเป็นเพียงวิธีการ จำกัด ชุดผลลัพธ์

  2. การแก้ไขชุดผลลัพธ์ของแบบสอบถามโดยยึดตามตารางเดียวเท่านั้นเป็นไปได้เสมอ

  3. ชุดผลลัพธ์ของแบบสอบถามที่ยึดตามตารางมากกว่าหนึ่งตารางอยู่ภายใต้เงื่อนไขต่อไปนี้ที่เป็นไปได้: คุณสามารถแก้ไขฟิลด์ในชุดผลลัพธ์ได้ในครั้งเดียวหากพวกเขาอยู่ในตารางที่ยึดตามตารางเดียวในแบบสอบถาม! หากช่องนั้นเป็นคีย์หลักคุณจะต้องรีเฟรช / "ดำเนินการ SQL" (Ctrl + R) หลังการอัปเดตแต่ละแถวเพื่อให้สามารถแก้ไขแถวในครั้งต่อไปได้ หากช่องนั้นไม่ใช่คีย์หลักคุณไม่จำเป็นต้องรีเฟรช / "ดำเนินการ SQL" (Ctrl + R)

ฉันได้ทดสอบบน SQL Server 2008 - 2016!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.