Tôi cố gắng để thả một thủ tục lưu trữ nếu nó tồn tại và sau đó tạo ra nó bằng cách thực hiện theo cách này:Tại sao câu lệnh CREATE PROCEDURE lại thất bại khi tôi sử dụng nó với IF Statement ở đây?
IF OBJECT_ID('[dbo].[myStoredProc]') IS not NULL
DROP PROCEDURE dbo.myStoredProc
CREATE PROCEDURE [dbo].[myStoredProc]
(
@parameter1 BIT
) AS
IF @parameter1 = 1
BEGIN
....
Nhưng nó than phiền rằng:
"CREATE PROCEDURE phải báo cáo kết quả chỉ trong batch "
Câu hỏi: Làm cách nào để khắc phục tập lệnh của mình để khắc phục vấn đề này?
Đã hoạt động! Nhưng tại sao nó là cần thiết để chấm dứt? Tôi có nghĩa là logic đằng sau – pencilCake
@pencilCake Bởi vì câu lệnh 'CREATE PROCEDURE' phải là câu lệnh đầu tiên (và chỉ một câu lệnh) trong một loạt. –
Tôi tự hỏi tại sao MS tạo ra RULE này ... Chống lại cái gì? .. – pencilCake