我想測試一個變量是唯一標識符,如果它然後將其轉換爲字符串,但它失敗:的SQL Server 2012:檢查是否是唯一標識符並轉換爲字符串
Declare @Item VARCHAR(50)
Declare @OutString varchar(max) ;
[email protected] is populated from various tables each cell separated by ','
--Getting the @Item from the @Outstring and convert it if its uid
DECLARE @Pos INT
DECLARE @Loop BIT
SELECT @Loop = CASE WHEN LEN(@OutString) > 0 THEN 1 ELSE 0 END
WHILE (SELECT @Loop) = 1
BEGIN
SELECT @Pos = CHARINDEX(',', @OutString, 1)
IF @Pos > 0
BEGIN
SELECT @Item = SUBSTRING(@OutString, 1, @Pos - 1)
SELECT @OutString = SUBSTRING(@OutString, @Pos + 1, LEN(@OutString) - @Pos)
IF (TRY_CONVERT(UNIQUEIDENTIFIER, @Item) IS NOT NULL)
BEGIN
CONVERT(NVARCHAR(50), @Item) AS @Item --ERROR LINE incorrect syntax
END
END
END
以什麼方式失敗?請提供更多信息。請發佈工作代碼(你有三個「開始」和一個「結束」)。如果發生錯誤,請隔離它發生的行併發布該信息 –
當你嘗試這個'select convert(nvarchar(50),@Item)作爲@Item'而不是'convert(nvarchar(50),@ Item)as @ Item' – TheGameiswar
你得到了轉換函數的語法錯誤。你看過語法嗎? https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql –