簡體   English   中英

MS SQL (SSMS) - 找不到列“dbo”或用戶定義的 function 或聚合“dbo.CheckEmail”,或者名稱不明確

[英]MS SQL (SSMS)- Cannot find either column "dbo" or the user-defined function or aggregate "dbo.CheckEmail", or the name is ambiguous

創建了一個 function 用於郵件驗證。 它已成功創建。 但是當我運行時,我得到一個錯誤——email checker function

    CREATE FUNCTION CheckEmail
   (
    @Email VARCHAR(100) 
   )
   RETURNS BIT
   AS
   BEGIN
    DECLARE @Result BIT
    IF @Email IS NOT NULL
    BEGIN   
        IF @Email LIKE '%[A-Z0-9][@][A-Z0-9]%[.][A-Z0-9]%' AND @Email NOT LIKE '%["<>'']%'
            SET @Result = 1;
        ELSE
            SET @Result = 0;
    END
    
    RETURN @Result;
   END 

-- function 開始

SELECT Email, dbo.CheckEmail(Email) AS CheckEmail
   FROM Users;

-- 錯誤:找不到列“dbo”或用戶定義的 function 或聚合“dbo.CheckEmail”,或者名稱不明確。

--用戶表

CREATE TABLE Users (
"Id" UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID(), 
"Email" VARCHAR(40) NOT NULL UNIQUE,
"Username" VARCHAR(30)  NOT NULL,
"Password" VARCHAR(30) NOT NULL,
"Name" NVARCHAR(50) NOT NULL,
"Surname" NVARCHAR(50) NOT NULL)

錯誤很明顯,因為在表中找不到 dbo.CheckEmail 字段,或者以這種方式調用的 function 。

如果您在使用 AD 的服務器中工作,如果您沒有明確指定架構“dbo”,則會在您的 DOMAIN\user 上創建 function

解決這個問題:

CREATE FUNCTION CheckEmail

至:

CREATE FUNCTION dbo.CheckEmail

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM