1
當我嘗試執行本帖末尾給出的腳本時出現錯誤。我的要求是檢查過程的存在,然後放下它,如果存在,最後創建過程。如果CREATE/ALTER不是第一條語句,腳本總是拋出一個錯誤
我該如何使用單個腳本文件來做到這一點?
Procedure Proc_GenerateTestData。 'CREATE/ALTER PROCEDURE'必須是查詢批處理中的第一條語句。 SQL2.sql 12 1
總是拋出上述錯誤的SQL腳本如下。
IF OBJECT_ID('dbo.Proc_GenerateTestData', 'p') IS NOT NULL
BEGIN
DROP PROCEDURE dbo.Proc_GenerateTestData
END
CREATE PROCEDURE dbo.Proc_GenerateTestData @numberOfRecords INT = 100
AS
--drop table #temp1
DECLARE @currentTime AS TIME = CAST(GETDATE() AS TIME);
DECLARE @currentWorkShiftDate AS DATETIME = CAST(CAST(GETDATE() AS DATE) AS DATETIME);
DECLARE @startTime TIME,
@lastShiftStartTime TIME;
DECLARE @tenantId AS UNIQUEIDENTIFIER = (SELECT TOP (1)
Tenants.Id
FROM Tenants
ORDER BY Tenants.Id ASC);
DECLARE @workshiftId INT,
@lastShiftStartDate DATETIME;
--more statements for this procedure follow
由於錯誤*清楚*表示 - CREATE PROCEDURE **必須是**查詢批處理中的第一條語句。這是**不是**這裏的情況,因爲您在....之前檢查了「DROP」,所以您需要更改腳本以使「CREATE PROCEDURE」語句**成爲查詢中的第一個批處理 - 如果您在SQL Server Management Studio中運行此操作,只需在「CREATE」之前添加一個「GO」分隔符。...... –
您可以將此作爲答案嗎?它爲我工作。 – Sunil