Я пытаюсь создать скрипт sql и запуститься. Я вижу ошибку компилятора Не могу найти ни столбца «dbo», ни определяемую пользователем функцию, ни агрегировать «dbo.udf_RemoveHTMLTags», либо имя неоднозначно. При запуске я получаю следующую ошибку. Идентификатор многочастности «# tempriskdesc.risk_id» " не может быть связан.Невозможно найти столбец «dbo» или пользовательскую функцию или совокупность «dbo.udf_RemoveHTMLTags», или это имя неоднозначно.
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
go
CREATE FUNCTION [dbo].[udf_RemoveHTMLTags]
(@HTMLText VARCHAR(4000))
RETURNS VARCHAR(4000)
AS
BEGIN
DECLARE @Start INT
DECLARE @End INT
DECLARE @Length INT
SET @Start = CHARINDEX('<', @HTMLText)
SET @End = CHARINDEX('>', @HTMLText, CHARINDEX('<', @HTMLText))
SET @Length = (@End - @Start) + 1
WHILE @Start > 0 AND @End > 0 AND @Length > 0
BEGIN
SET @HTMLText = STUFF(@HTMLText, @Start, @Length, '')
SET @Start = CHARINDEX('<', @HTMLText)
SET @End = CHARINDEX('>', @HTMLText, CHARINDEX('<', @HTMLText))
SET @Length = (@End - @Start) + 1
END
RETURN LTRIM(RTRIM(@HTMLText))
END
Я затем попытаться использовать эту функцию таким образом:
BEGIN TRY
CREATE TABLE #tempriskdesc
(risk_id INTEGER ,
risk_desc VARCHAR(4000))
INSERT INTO #tempriskdesc
SELECT
p.risk_id ,
[dbo].[udf_RemoveHTMLTags](SUBSTRING(p.risk_descr, 1, 4000))
FROM
PROJRISK p
UPDATE PROJRISK
SET risk_desc = #tempriskdesc.risk_desc
WHERE #tempriskdesc.risk_id = PROJRISK.risk_id
DROP TABLE #tempriskdesc
END TRY
BEGIN CATCH
DECLARE @ErrorMessage NVARCHAR(4000) ,
@ErrorSeverity INTEGER ,
@ErrorState INTEGER ,
@ErrorNumber INTEGER;
SELECT @ErrorMessage = ERROR_MESSAGE() ,
@ErrorSeverity = ERROR_SEVERITY() ,
@ErrorState = ERROR_STATE() ,
@ErrorNumber = ERROR_NUMBER();
RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState);
END CATCH
Некоторые отступы и код очистки может работать ** чудеса **, чтобы показать, что происходит! –
, где вы запустили пользовательский скрипт функции, он должен быть запущен сначала в базе данных. – Jade
@lloyd указание колонки имя не является обязательным. Была проблема с запросом обновления правильного запрос обновления UPDATE PROJRISK SET risk_desc = # tempriskdesc.risk_desc из #tempriskdesc WHERE # tempriskdesc.risk_id = PROJRISK.risk_id – jetty