允許用戶通過scheme的id或scheme的名稱發送對scheme的引用。如果給定方案在記錄中作爲ID或名稱找到,則數據有效。臨時表...在TSQL中處理模棱兩可的varchar(uniqueidentifier或不)時,轉換失敗
CREATE TABLE #ModelsForScheme(
[modelid] uniqueidentifier,
[schemeid] VARCHAR (36))
臨時表後來被填充。我現在有什麼...
DECLARE @XMLScheme VARCHAR (36)
SET @XMLScheme = (SELECT TOP 1 schemeid FROM #ModelsForScheme) --there will only be one row
DECLARE @SchemeID VARCHAR (36)
SELECT @SchemeID=schemeid FROM SCHEMES WHERE [email protected]
IF @SchemeID IS NULL
SELECT @SchemeID=schemeid FROM SCHEMES WHERE [name][email protected]
IF @SchemeID IS NULL
SELECT 'Scheme is NULL'
(列schemeid
是表SCHEMES
一個uniqueidentifier
)。
這可以很好地發送uniqueidentifier
。但是,當發送名稱時(例如@XMLScheme = 'dog'
),我收到以下錯誤;
將字符串轉換爲uniqueidentifier時轉換失敗。
我試圖CAST
和CONVERT
,但我不能讓他們的工作。如果我保證這只是SCHEMES
中的一個方案,我可以讓它起作用,但事實並非如此。
SET @XMLSchemeID = (SELECT TOP 1 schemeid FROM #ModelsForScheme)
SET @SchemeID= (SELECT TOP 1 schemeid FROM SCHEMES)
IF @XMLSchemeID<>@SchemeID
Select 'yeaaaaa no error'
任何想法表示讚賞。提前致謝。
從問題「(該列的schemeid是表SCHEMES中的uniqueidentifier)」,所以它不是一個數字。 – 2012-08-14 20:47:21
修復了一個類似的語句來檢查它是否爲uid。 – valex 2012-08-14 21:39:16