我想寫一個有點簡單的存儲過程。我首先要驗證表中是否有任何東西;如果有TRUNCATE它,如果沒有填充一些數據。會發生什麼呢,它會在沒有任何錯誤的情況下執行,但表中沒有任何反應。它就像在執行它之前一樣......空着。存儲過程不在SQL SERVER中執行?
ALTER PROCEDURE [dbo].[LoadReportDataCI]
AS
If (Select Count(*) from tbl_TempTableReport)>0
BEGIN
Truncate table tbl_TempTableReport
END
Begin
INSERT INTO tbl_TempTableReport (userID, VendorID, VendorName, UnitCost, UnitCount, CostValue)
SELECT
'1234',
VendorID,
VendorName,
InvValue,
BegInvOnHand,
BegCurrentValue
From vVendorsAndInvONHand
END
如果我想強調開始INSERT,直到最後,得到的數據填入表中,否則它不能正常工作。有人點亮一些光?下面的代碼來執行存儲過程
如果你想檢查行的存在,你應該使用存在而不是count。但是,由於截斷速度如此之快,爲什麼都要檢查?只是截斷它。作爲一個附註,你應該避免使用sp_前綴。 http://sqlperformance.com/2012/10/t-sql-queries/sp_prefix –
用'sp_'命名用戶定義的過程是不好的做法。 – lad2025
試着在你之前移動你的第二個開始語句,看看我的回答 – Faisal