我有一個返回VarChar(MAX)
在我的存儲過程我做了標值函數這個爲什麼設置這樣一個變量會有所作爲?
declare @p_emailAddr varchar(MAX) = (select db.dbo.GetEmails(10))
如果我做print @p_emailAddr
它讓我看到它是用正確的信息,但代碼的其餘部分填充不起作用正確使用它。 (我不知道爲什麼,它沒有任何意義!)
現在,如果我改變它像這樣
declare @p_emailAddr varchar(MAX) = '[email protected];'
我的代碼的其餘部分完美的作品,因爲它應該!
設置@p_emailAddr
這兩種方法有什麼區別呢?
這是收到的電子郵件的代碼
ALTER FUNCTION [dbo].[GetEmails](@p_SubID int)
RETURNS varchar(max)
AS
BEGIN
DECLARE @p_Emails varchar(max)
SELECT @p_Emails = COALESCE(@p_Emails + ';', '') + E.EmailAddress
FROM db.dbo.UserEmailAddr E JOIN
db.dbo.EmailSubscriptionUsers S on e.ClockNumber = s.Clock AND S.SubID = @p_SubID
SET @p_Emails = @p_Emails + ';'
RETURN @p_Emails
END
你能顯示'GetEmails'的代碼? –
顯示GetEmails的其餘代碼+代碼(10) – lad2025
它沒有任何區別。函數返回的值與字符串文本中的值實際上不能相同。 –