Cách chỉnh sửa dữ liệu trong lưới kết quả trong SQL Server Management Studio


94

Tôi muốn chỉnh sửa một số giá trị hàng khi tôi nhận được kết quả truy vấn trong lưới kết quả. Đúng là chúng ta có thể nhấp chuột phải vào bảng và nói mở bảng để nhận đầu ra bảng có thể chỉnh sửa, nhưng những gì tôi muốn là đầu ra truy vấn có thể chỉnh sửa, chỉ một số hàng nhất định phù hợp với tiêu chí của tôi và chỉnh sửa chúng trong lưới kết quả.

Điều này có thể thực hiện được bên trong Microsoft SQL server Management Studio Express không?


1
Đánh dấu là trùng lặp với stackoverflow.com/questions/1535469/… ? Nó cũng có một giải pháp làm việc đầy đủ
Brad

3
@Brad - Câu trả lời cho câu hỏi được liên kết với chỉ hoạt động nếu bạn đang sử dụng một bảng duy nhất, tức là không có liên kết nào. Sau khi bắt đầu tham gia 2 hoặc 3 bàn, bạn không thể thực hiện việc này nữa. Sẽ rất thú vị nếu có bất kỳ giải pháp nào khác.
Francis Rodgers

2
Đọc câu trả lời của @Yves A Martin dưới đây để biết một giải pháp thay thế cho việc chỉnh sửa các bảng được THAM GIA.
jaredbaszler

Câu trả lời:


86

Bạn có thể làm điều gì đó tương tự như những gì bạn muốn. Nhấp chuột phải vào bảng và chọn "chỉnh sửa 200 hàng trên cùng" (nếu bạn đang sử dụng SQL Server 2008) hoặc "mở bảng" trong SQL Server 2005. Khi bạn đến đó, có một nút trên đầu cho biết "SQL"; khi bạn nhấp vào nó, nó cho phép bạn viết một câu lệnh SQL và bạn có thể chỉnh sửa kết quả của nó nếu bạn nhấp vào một ô bạn muốn thay đổi.


1
Đây là năm 2019, phiên bản mới nhất của nó là SSMS 2017, vẫn sử dụng phương pháp tương tự để chỉnh sửa các ô lưới! một thiết kế giao diện người dùng tồi tệ như vậy!
S.Serpooshan

78

Có, Điều này là có thể. Nhấp chuột phải vào bảng và nhấp vào Edit Top 200 Rowsnhư hiển thị trong hình ảnh bên dưới

nhập mô tả hình ảnh ở đây

Sau đó nhấp vào bất kỳ đâu bên trong lưới kết quả, để bật SQLBiểu tượng "Hiển thị Ngăn Sql". Thao tác này sẽ mở trình chỉnh sửa sql cho bảng bạn đã chọn chỉnh sửa, tại đây bạn có thể viết truy vấn sql của riêng mình và sau đó bạn có thể trực tiếp chỉnh sửa tập kết quả của truy vấn.

nhập mô tả hình ảnh ở đây


25

Cách bạn có thể làm điều này là:

  • chuyển truy vấn đã chọn của bạn thành một chế độ xem
  • nhấp chuột phải vào dạng xem và chọn Edit All Rows (bạn sẽ nhận được một lưới các giá trị mà bạn có thể chỉnh sửa - ngay cả khi các giá trị từ các bảng khác nhau).

Bạn cũng có thể thêm trình kích hoạt Chèn / Cập nhật vào chế độ xem của mình để cho phép bạn lấy các giá trị từ các trường chế độ xem và sau đó sử dụng T-SQL để quản lý các cập nhật cho nhiều bảng.


1
+1 - Đây là cách tốt nhất và dễ dàng nhất để chỉnh sửa các bảng được THAM GIA. Mặc dù có quá nhiều công việc để hoàn thành nhiệm vụ này, nhưng đó là cách duy nhất tôi có thể tìm để thực hiện.
jaredbaszler

Bạn không thể chỉnh sửa các bảng JOINED. Chỉ các câu lệnh SQL không phải JOIN. Tất cả các ô của tôi đều không thể chỉnh sửa được khi tôi có JOIN.
Charles Robertson

20

SSMS - Kết quả Nhấp chuột phải của Chỉnh sửa 200 | Tùy chọn | Pane | SQL - chỉnh sửa câu lệnh.


SSMS 2014, bỏ qua bước "Tùy chọn".
Denise Skidmore

17

Không. Không có cách nào bạn có thể chỉnh sửa lưới kết quả. Lưới kết quả chủ yếu để hiển thị các mục đích của truy vấn bạn đã thực hiện.

Điều này vì lý do mà bất kỳ ai cũng có thể thực hiện các truy vấn phức tạp. Hy vọng rằng trong bản phát hành tiếp theo, chúng sẽ bao gồm loại chức năng này.

Tôi hy vọng rằng câu trả lời câu hỏi của bạn.


6
Tôi không hiểu tại sao mọi người lại bỏ phiếu cho câu trả lời của bạn. Nó thực sự đúng. Khi bạn sử dụng phép nối trong truy vấn của mình, bạn không thể chỉnh sửa kết quả bằng các phương pháp được đề xuất trong bất kỳ câu trả lời nào cho đến nay. +1 từ tôi.
Francis Rodgers

Bạn có thể sao chép truy vấn vào một ngăn SQL lưới chỉnh sửa, đó là những gì mà các câu trả lời khác ám chỉ.
Denise Skidmore

17

Các câu trả lời đã cho vẫn có giá trị. Không có thay đổi nào trong SSMS (SQL Server 2016) về vấn đề đó.

Bạn cũng có thể sử dụng ngăn tiêu chí, sau khi thực hiện "Chỉnh sửa 200 hàng hàng đầu".

Chỉnh sửa 200 menu ngữ cảnh hàng đầu

  1. Hiển thị ngăn tiêu chí
  2. Nhập một số tiêu chí
  3. Chỉnh sửa dữ liệu trực tiếp trong lưới kết quả

Mở ngăn tiêu chí

Ngoài ra, số lượng hàng cho các lệnh đó có thể được tùy chỉnh trong tùy chọn SSMS của bạn.

nhập mô tả hình ảnh ở đây


10

CẬP NHẬT
khi bạn có thể thấy giải pháp chính xác trong Câu trả lời học tập , Trong quản lý máy chủ SQL 2014, bạn có thể
1. nhấp vào " Chỉnh sửa 200 hàng hàng đầu "
và sau đó
2. nhấp vào " Hiển thị ngăn chứa SQL (ctrl + 3) "

3. xóa TOP ( 200) từ truy vấn chọn lọc


Tham khảo câu trả lời của Shen Lance, không có cách nào để chỉnh sửa Kết quả của truy vấn chọn. và các câu trả lời khác chỉ dành cho lựa chọn thông thường và chỉ dành cho 200 bản ghi.


5

Có, bạn có thể chỉnh sửa kết quả đã tham gia. (ít nhất là trong SSMS 2008 R2) Sau khi bạn chỉnh sửa bất kỳ giá trị kết quả nào trong Dạng xem sử dụng phép nối, bạn sẽ cần thực hiện lại truy vấn để làm mới kết quả.

Bạn cũng cần đảm bảo rằng SSMS được cấu hình để cho phép "Chỉnh sửa tất cả các hàng" ... để thực hiện việc này trong SSMS - Công cụ | Tùy chọn | SQL Server Object Explorer | Các lệnh ... mở rộng Tùy chọn Bảng và Dạng xem ... đặt giá trị 0 trong "Giá trị cho lệnh Chỉnh sửa Hàng đầu n" ... cũng có thể thực hiện việc này cho vùng chọn.

Câu trả lời của Yves A Martin là đúng 100%!

Rob


5

Chỉ cần chọn "Chỉnh sửa 200 hàng hàng đầu", nhấn Ctrl + 3 trong vùng lưới chỉnh sửa (hoặc nhấp vào "Hiển thị ngăn SQL") và chỉnh sửa truy vấn ...

Nhưng xin lưu ý rằng điều này sẽ chỉ hoạt động cho truy vấn không chứa "tham gia"


4

Trước hết, nhấp chuột phải vào câu chuyện chọn 'Chỉnh sửa Tất cả Hàng', chọn 'Trình thiết kế truy vấn -> Ngăn -> SQL', sau đó bạn có thể chỉnh sửa kết quả truy vấn trong lưới.


3

Nếu bạn cần thường xuyên thực hiện các chỉnh sửa trong ô trên cơ sở dữ liệu SQL, HeidiSQL hoạt động tốt, không thể đơn giản hơn để sử dụng và là mã nguồn mở / miễn phí (được chấp nhận đóng góp).

Ban đầu được viết cho MySQL, giờ đây nó có thể xử lý SQL Server và cũng có hỗ trợ PostgreSQL thử nghiệm (tính đến tháng 8 năm 2014).


3

Nhấp chuột phải vào bất kỳ bảng nào trong dB bạn quan tâm hoặc bất kỳ cơ sở dữ liệu nào trong máy chủ bằng cách sử dụng chính nếu có liên kết hoặc sử dụng nhiều dB. Chọn "chỉnh sửa 200 hàng trên cùng". Chọn nút "SQL" trên thanh tác vụ. Sao chép và dán mã của bạn lên mã hiện có và chạy lại. Bây giờ bạn có thể chỉnh sửa tập hợp kết quả truy vấn của mình. Sherry ;-)


Điều đó đã giúp một lít.
Asad Ali

2

Nếu truy vấn được viết dưới dạng một dạng xem, bạn có thể chỉnh sửa dạng xem và cập nhật các giá trị. Không thể cập nhật giá trị cho tất cả các chế độ xem. Nó chỉ có thể cho các chế độ xem cụ thể. Xem phần Sửa đổi dữ liệu thông qua Xem liên kết MSDN để biết thêm thông tin. Bạn có thể tạo chế độ xem cho truy vấn và chỉnh sửa 200 hàng như dưới đây:

nhập mô tả hình ảnh ở đây


Tại sao lại có biểu quyết tiêu cực ở đây. Câu hỏi không dành riêng cho việc chỉnh sửa bảng. Câu hỏi đặt ra là, làm cách nào chúng ta có thể chỉnh sửa lưới tập kết quả cho bất kỳ đầu ra truy vấn nào, anh ấy đang nhận được. Tôi đã đề xuất, nếu có thể, anh ấy có thể tạo chế độ xem cho truy vấn và chỉnh sửa các hàng.
Venkataraman R

0
  1. Nói rõ hơn: Tùy chọn "Giá trị cho lệnh Chỉnh sửa Hàng trên cùng" không liên quan gì đến việc tập kết quả có thể chỉnh sửa được hay không. Nó chỉ là một cách để giới hạn tập hợp kết quả.

  2. Việc chỉnh sửa tập kết quả của một truy vấn dựa trên một và chỉ một bảng rõ ràng là luôn có thể thực hiện được.

  3. Tập hợp kết quả của truy vấn dựa trên nhiều hơn một bảng có thể theo điều kiện sau: Bạn có thể chỉnh sửa các trường trong tập kết quả ngay lập tức nếu chúng thuộc về một và chỉ một bảng dựa trong truy vấn! Nếu các trường là Khóa chính, thì bạn phải thực hiện làm mới / "Thực thi SQL" (Ctrl + R) sau mỗi lần cập nhật hàng, để có thể chỉnh sửa hàng vào lần sau. Nếu các trường không phải là Khóa chính, thì bạn không cần thực hiện làm mới / "Thực thi SQL" (Ctrl + R).

Tôi đã thử nghiệm nó trên SQL Server 2008-2016!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.