我想写一个有点简单的存储过程。我首先要验证表中是否有任何东西;如果有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