我很困惑我创建了一个在 int 上使用 STUFF 函数的视图。它正在工作,但是我不得不放下我的桌子并重新加载它,现在我的视图不起作用。我收到以下错误Conversion failed when converting the nvarchar value ' 5, 4' to data type int.
。我从上次使用的同一个插入脚本加载表,并添加了一个不应该产生影响的字段。我的创建视图脚本如下:
CREATE VIEW [AQB_OB].[GISREQUESTEDBURNS]
AS
with conditions as
(SELECT DISTINCT BD.[RequestedBurnsID]
,[ConditionsReasonsID] = STUFF((SELECT ', ' + CONVERT(VARCHAR(20),[ConditionsReasonsID]) FROM [AQB_OB].[BurnDecisions] WHERE [RequestedBurnsID]= BD.[RequestedBurnsID] ORDER BY [RequestedBurnsID] ASC
FOR XML PATH ('')) , 1 , 1, '') FROM
[AQB_OB].[BurnDecisions] BD)
SELECT RB.[RequestedBurnsID] AS REQUESTEDBURNID
,BUY.[BurnYear] AS BURNYEAR
,CY.[CurrentYear] AS CURRENTYEAR
,RB.[BurnSitesID] AS BURNSITESID
,[BurnerID] AS BURNERID
,[Contact] AS CONTACT
,[Latitude] AS LATITUDE
,[Longitude] AS LONGITUDE
,[BurnStartDate] AS BURNSTARTDATE
,[BurnEndDate] AS BURNENDDATE
,RB.[NumberPiles] AS NUMBERPILES
,[BurnDecision] AS BURNDECISION
,RB.[Comment] AS COMMENT
,CC.ConditionsReasonsID AS CONDITIONS
FROM [AQB_MON].[AQB_OB].[RequestedBurns] RB
inner join AQB_MON.[AQB_OB].[BurnSites] BS on RB.BurnSitesID = BS.BurnSitesID
inner join AQB_MON.[AQB_OB].[Contacts] CT on RB.ContactsID = CT.ContactsID
inner join AQB_MON.[AQB_OB].[BurnProject] BP on BP.BurnProjectID = BS.BurnProjectID
inner join AQB_MON.[AQB_OB].[BurnYears] BUY on BUY.BurnYearID = BP.BurnYearID
inner join AQB_MON.[AQB_OB].[CurrentYear] CY on CY.CurrentYearID = BUY.CurrentYearID
full outer join conditions CC on CC.RequestedBurnsID = RB.RequestedBurnsID
INNER JOIN [AQB_OB].[ConditionsReasons] CR ON CR.ConditionsReasonsID = CC.ConditionsReasonsID
GO