2012-08-13 110 views
0

嗨,大家好我寫了這個存儲過程,但有它的錯誤,即我得到錯誤「無法在nvarchar上調用方法」爲什麼?

不能調用nvarchar的方法

T-SQL代碼:

ALTER PROCEDURE dbo.User_Announcement_Create 
     @Announcement nvarchar(250), 
     @UserName nvarchar(256) 
AS 
BEGIN 
    DECLARE @NewAnnouncement nvarchar(250) 
    SELECT @NewAnnouncement = NULL 

    IF(@UserName.dbo.Announcements IS NULL) 
     (SELECT UserName FROM dbo.aspnet_Users 
     WHERE @UserName = UserName) 
     RETURN -1 
END 

DECLARE @CreateAnnouncement bit 

DECLARE @ReturnValue int 
SET @ReturnValue = 0 

SELECT @NewAnnouncement = Announcement FROM Announcements 

SET @CreateAnnouncement = 1 

INSERT INTO Announcements (Announcement, UserName) 
VALUES (@Announcement, @UserName) 

任何人都可以請幫我解決這個問題?

+0

這是什麼'IF(@ UserName.dbo.Announcements IS NULL)'該怎麼辦? – 2012-08-13 14:26:05

+0

@UserName不是您的數據庫服務器名稱,因爲您正在使用它之前的dbo.Announcements。您不能以這種方式放置nvarchar或任何變量。 – 2012-08-13 14:29:59

回答

0

更換這部分

IF(@UserName.dbo.Announcements IS NULL) -- not understandable what are you doing here 

與此

IF(@UserName IS NULL) 
相關問題