2013-05-05 43 views
1

我有這個存儲再修改不更新空輸入變量

ALTER PROCEDURE dbo.News_Edite 
(
    @Id bigint, 
    @Title nvarchar(MAX), 
    @Lile nvarchar(MAX), 
    @Body nvarchar(MAX), 
    @Type nvarchar(20), 
    @Imgurl nvarchar(MAX), 
    @Date nvarchar(50) 
) 
AS 
update tbl_news 
set 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected] 
where [email protected] 
RETURN 

,但我想不更新ne_imgurl如果@Imgurl是空

什麼是包含在的輸入參數的最佳方式設置子句,但如果它爲空則排除它?

回答

2

您可以使用的isNull,但我不知道你想在

例如取代它什麼:

ne_imgurl=isNull(@Imgurl, ''), 
+0

我想ne_imgurl – 2013-05-05 06:25:59

+0

所以,你需要做的僅僅是用這種方式替代:ne_imgurl = ISNULL(@Imgurl,ne_imgurl) – 2013-05-05 07:21:32

2

使用函數ISNULL,然後傳遞原始值作爲第二個參數。 ISNULL所做的是返回第一個參數,除非第一個參數爲null,然後它將返回第二個參數。

ALTER PROCEDURE dbo.News_Edite 
(
    @Id bigint, 
    @Title nvarchar(MAX), 
    @Lile nvarchar(MAX), 
    @Body nvarchar(MAX), 
    @Type nvarchar(20), 
    @Imgurl nvarchar(MAX), 
    @Date nvarchar(50) 
) 
AS 
update tbl_news 
set 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
ne_imgurl=ISNULL(@Imgurl, ne_imgurl), 
[email protected] 
where [email protected] 
RETURN