Mọi thứ tôi đã đọc nói rằng khi thực hiện một thủ tục được lưu trữ được quản lý, nhấp chuột phải vào Visual Studio và chọn triển khai. Điều đó hoạt động tốt, nhưng nếu tôi muốn triển khai nó bên ngoài Visual Studio với một số địa điểm khác nhau thì sao? Tôi đã thử tạo ra các hội đồng với dll dự án được xây dựng trong SQL, và trong khi nó đã thêm lắp ráp, nó đã không tạo ra các thủ tục ra khỏi hội đồng. Có ai đã tìm ra cách để làm điều này trong SQL trực tiếp, mà không cần sử dụng Visual Studio?Làm cách nào để triển khai thủ tục được lưu trữ được quản lý mà không sử dụng Visual Studio?
Trả lời
Sao chép tệp DLL lắp ráp của bạn vào ổ đĩa cục bộ trên các máy chủ khác nhau của bạn. Sau đó đăng ký lắp ráp của bạn với cơ sở dữ liệu:
create assembly [YOUR_ASSEMBLY]
from '(PATH_TO_DLL)'
... sau đó bạn tạo một hàm tham khảo phương pháp nào thích hợp trong DLL:
create proc [YOUR_FUNCTION]
as
external name [YOUR_ASSEMBLY].[NAME_SPACE].[YOUR_METHOD]
Hãy chắc chắn để sử dụng [dấu ngoặc, đặc biệt là xung quanh NAME_SPACE. Các không gian tên có thể có bất kỳ số dấu chấm nào trong chúng, nhưng các mã định danh SQL không thể, trừ khi các phần được thiết lập rõ ràng bằng các dấu ngoặc vuông. Đây là một nguồn của nhiều nhức đầu khi tôi lần đầu tiên sử dụng SQL CLR.
Để rõ ràng, [YOUR_ASSEMBLY] là tên bạn đã xác định trong SQL; [NAME_SPACE] là không gian tên .NET bên trong DLL nơi phương thức của bạn có thể được tìm thấy; và [YOUR_METHOD] chỉ đơn giản là tên của phương thức trong không gian tên đó.
Đối với thêm một số chi tiết/làm rõ để anwser @ kcrumley của trên:
[NAME_SPACE] là đầy đủ loại tên và không chỉ là không gian tên
- tức là nếu lớp học của bạn được gọi là StoredProcedures
trong một không gian tên của My.Name.Space
, bạn phải sử dụng [My.Name.Space.StoredProcedures]
cho phần [NAME_SPACE].
Nếu các thủ tục được lưu trữ được quản lý của bạn nằm trong một lớp không có không gian tên được xác định, bạn chỉ cần sử dụng tên lớp trống (ví dụ: [StoredProcedures]
).
Tôi cũng cố gắng tìm cách thêm thủ tục với đối số/tham số. Vì vậy, lấy mẫu cho bất kỳ ai khác đang cố gắng làm như vậy:
CREATE PROCEDURE [YOUR_FUNCTION]
(
@parameter1 int,
@parameter2 nvarchar
)
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [YOUR_ASSEMBLY].[StoredProcedures].[YOUR_FUNCTION]
- 1. Làm cách nào để sử dụng dll C# (được quản lý) mà tôi không có?
- 2. Mẫu lưu trữ với các thủ tục được lưu trữ
- 3. Gọi thủ tục lưu trữ trong một thủ tục được lưu trữ trong MySQL
- 4. Tôi làm cách nào để tìm các cuộc gọi thủ tục được lưu trữ?
- 5. Thủ tục được lưu trữ hoặc mã số
- 6. Sybase IQ - cách hiển thị thủ tục được lưu trữ mà không cần gói văn bản?
- 7. Làm cách nào để lưu một thủ tục được lưu trữ trong SQL Server 2008 R2?
- 8. Di chuyển các thủ tục được lưu trữ bằng Flyway
- 9. Các thủ tục được lưu trữ là thời gian không liên tục!
- 10. Cách tạo tập lệnh cài đặt thủ tục lưu trữ SQL CLR w/o Visual Studio
- 11. Cách đơn giản để lập trình có được tất cả các thủ tục được lưu trữ
- 12. Làm cách nào để gỡ lỗi thủ tục được lưu trữ từ một ứng dụng web .net?
- 13. Cách thanh lịch nhất để sử dụng các thủ tục được lưu trữ là gì?
- 14. Làm thế nào để lưu một thủ tục lưu trữ?
- 15. Chức năng so với các thủ tục được lưu trữ
- 16. Làm cách nào để gọi thủ tục được lưu trữ với các tham số độc đáo?
- 17. Có hiệu suất chính đạt được bằng cách sử dụng các thủ tục được lưu trữ không?
- 18. SELECT đối với thủ tục được lưu trữ SQL Server
- 19. Cách duyệt và xem các tập tin được lưu trữ trong Team Foundation Server mà không sử dụng Visual Studio
- 20. Làm cách nào để thực thi thủ tục được lưu trữ trong tác vụ SQL Agent?
- 21. SQL - Thủ tục được lưu trữ với Chọn Tuyên bố bằng cách sử dụng IN (@Variable_CommaDelimitedListOfIDS)
- 22. Làm cách nào để tạo điều kiện thủ tục được lưu trữ trong SQL Server?
- 23. Cách xem mã thủ tục được lưu trữ trong SQL Server Management Studio
- 24. Thực hiện một thủ tục được lưu trữ trong một thủ tục lưu sẵn
- 25. Kiểm tra thủ tục và lưu trữ thủ tục bằng cách sử dụng Nunit
- 26. Làm cách nào để bạn chỉnh sửa thủ tục được lưu trữ trong MySQL?
- 27. Làm thế nào để xem Oracle lưu trữ thủ tục bằng cách sử dụng SQLPlus?
- 28. Làm cách nào để xóa một thủ tục được lưu trữ trong postgresql?
- 29. Làm cách nào để thực hiện một thủ tục được lưu trữ trong MS Access?
- 30. Lấy lược đồ trường trong Visual Studio của thủ tục lưu trữ sử dụng bảng tạm thời
Tôi tìm thấy [this] (https://msdn.microsoft.com/en-us/library/ms254956 (v = vs.90) .aspx) là một tài nguyên hữu ích để thực hiện toàn bộ điều từ dòng lệnh – user2426679