Bất cứ ai có thể vui lòng giải thích cho tôi cách tạo việc làm trong SQL Server Express
phiên bản?
Bất cứ ai có thể vui lòng giải thích cho tôi cách tạo việc làm trong SQL Server Express
phiên bản?
Câu trả lời:
SQL Server Express không bao gồm SQL Server Agent , vì vậy không thể chỉ tạo các công việc SQL Agent.
Những gì bạn có thể làm là:
Bạn có thể tạo công việc "theo cách thủ công" bằng cách tạo các tệp hàng loạt và tệp kịch bản SQL, và chạy chúng thông qua Bộ lập lịch tác vụ Windows.
Ví dụ: bạn có thể sao lưu cơ sở dữ liệu của mình bằng hai tệp như sau:
backup.bat:
sqlcmd -i backup.sql
backup.sql:
backup database TeamCity to disk = 'c:\backups\MyBackup.bak'
Chỉ cần đặt cả hai tệp vào cùng một thư mục và giải mã hàng loạt tệp thông qua Trình lập lịch tác vụ Windows.
Tệp đầu tiên chỉ là tệp lô của Windows gọi tiện ích sqlcmd và chuyển tệp kịch bản SQL.
Tệp kịch bản SQL chứa T-SQL. Trong ví dụ của tôi, nó chỉ là một dòng để sao lưu cơ sở dữ liệu, nhưng bạn có thể đặt bất kỳ T-SQL nào bên trong. Ví dụ, bạn có thể thực hiện một số UPDATE
truy vấn thay thế.
Nếu công việc bạn muốn tạo là để sao lưu, duy trì chỉ mục hoặc kiểm tra tính toàn vẹn, bạn cũng có thể sử dụng Giải pháp bảo trì tuyệt vời của Ola Hallengren.
Nó bao gồm một loạt các thủ tục được lưu trữ (và các công việc SQL Agent cho các phiên bản SQL Server không phải Express) và trong Câu hỏi thường gặp có một phần về cách chạy các công việc trên SQL Server Express:
Làm cách nào để bắt đầu với Giải pháp Bảo trì Máy chủ SQL trên SQL Server Express?
SQL Server Express không có SQL Server Agent. Do đó, việc thực thi các thủ tục được lưu trữ phải được lên lịch bằng cách sử dụng tệp cmd và Tác vụ đã lên lịch của Windows. Làm theo các bước sau.
SQL Server Express không có SQL Server Agent. Do đó, việc thực thi các thủ tục được lưu trữ phải được lên lịch bằng cách sử dụng tệp cmd và Tác vụ đã lên lịch của Windows. Làm theo các bước sau.
Tải xuống MaintenanceSolution.sql.
Thực thi MaintenanceSolution.sql. Tập lệnh này tạo ra các thủ tục được lưu trữ mà bạn cần.
Tạo các tệp cmd để thực hiện các thủ tục được lưu trữ; ví dụ:
sqlcmd -E -S. \ SQLEXPRESS -d master -Q "EXECUTE dbo.DatabaseBackup @Databases = 'USER_DATABASES', @Directory = N'C: \ Backup ', @BackupType =' FULL '" -b -o C: \ Log \ DatabaseBackup.txtTrong Tác vụ theo lịch trình của Windows, hãy tạo tác vụ để gọi tệp cmd.
Lên lịch các nhiệm vụ.
Bắt đầu các nhiệm vụ và xác minh rằng chúng đang hoàn thành thành công.
Chức năng tạo SQL Agent Jobs không có sẵn trong SQL Server Express Edition. Một giải pháp thay thế là thực thi một tệp hàng loạt thực thi tập lệnh SQL bằng Bộ lập lịch tác vụ Windows.
Để thực hiện việc này, trước tiên hãy tạo một tệp batch có tên sqljob.bat
sqlcmd -S servername -U username -P password -i <path of sqljob.sql>
Thay thế servername
, username
, password
và path
với bạn.
Sau đó, tạo tệp SQL Script có tên sqljob.sql
USE [databasename]
--T-SQL commands go here
GO
Thay thế [databasename]
bằng tên cơ sở dữ liệu của bạn. Các USE
và GO
là cần thiết khi bạn viết kịch bản SQL.
sqlcmd
là một tiện ích dòng lệnh để thực thi các tập lệnh SQL. Sau khi tạo hai tệp này, thực thi tệp hàng loạt bằng Windows Task Scheduler.
NB: Một câu trả lời gần như tương tự đã được đăng cho câu hỏi này trước đây. Nhưng tôi cảm thấy nó không đầy đủ vì nó không chỉ định về thông tin đăng nhập bằng cách sử dụng sqlcmd
.
path of sqljob.sql
bằng bất kỳ vị trí nào bạn sử dụng). Hãy nhớ rằng một *.sql
tệp ở đây không chỉ là một tệp văn bản.
Các phiên bản SQL Server Express bị hạn chế theo một số cách - một cách là chúng không có SQL Agent cho phép bạn lên lịch công việc.
Có một số tiện ích mở rộng của bên thứ ba cung cấp khả năng đó - hãy xem ví dụ: