2016-11-10 73 views
1

我想寫一些東西像查詢:SQL查詢,刪除,並返回消息

BEGIN 

DECLARE @Unaloacte varchar(200); 
DECLARE @Total int; 
DECLARE @Flag int; 

SET @Unaloacte =(Select count(PD.PropertyDetailId) from PropertyDetail AS PD join 
SiteDetail AS SD ON PD.SiteDetailId=SD.SiteDetailId Where PD.CustomerId<1 and PD.SiteDetailId=27); 

SET @Total= (Select count(PropertyDetailId) as Total_Count from PropertyDetail where SiteDetailId=27) ; 

if(@Unaloacte = @Total) 
Delete something and display message 
print"Delete"; 
else 

print"Not able to delete" 

END 

我希望你明白我的問題。

回答

0

你可以嘗試這樣的:

DECLARE @Msg VARCHAR(200) 

if(@Unaloacte = @Total) 
BEGIN 
BEGIN TRAN 

DELETE something 

SELECT @Msg = CAST(@@ROWCOUNT AS VARCHAR(10)) + ' are deleted' 
RAISERROR (@Msg, 0, 1) WITH NOWAIT 

COMMIT 
END 

ELSE 
BEGIN 
SELECT 'Not able to delete' 
END 

此外,我會建議你使用BEGIN TRANCOMMIT如果您打算在生產中使用。

+0

我想要其他部分。如果不能刪除,則顯示消息。 – Shailendra

+0

@DevelopShailendra: - 補充說。請檢查。 –

+0

列名無效「無法刪除」 – Shailendra

0

您可以通過使用@@ROWCOUNTSET NOCOUNT ON

SET NOCOUNT ON 
DELETE FROM TableName 
IF @@ROWCOUNT > 0 
    PRINT 'Record Deleted' 
ELSE 
    PRINT 'Record Not Deleted' 

這裏SET NOCOUNT ON檢查這是用來因爲我們不希望看到影響郵件的行數。