2009-11-03 89 views
2

我發現一個SQLServer數據庫存儲過程是這樣的:=(T)SQL中的意思是什麼?

SELECT stuff 
    FROM mytable 
WHERE mytable.column = + @parameter 

它似乎運行沒有錯誤,所以我想這沒關係。 「+」會做什麼?

(這並不奇怪,這是一個棘手的問題,以有效地搜索,所以我提前道歉,如果這是一個重複。)

+2

刪除+,它沒有任何用處。 – 2009-11-03 16:41:33

回答

2

一元+沒有做在T-SQL什麼。

也許寫它的人看到了[email protected]rameter並刪除了0以「優化它」。如果@parameter不是數字,則[email protected]會生成錯誤,而一元+不會執行任何操作。

5

+-相反,其改變的跡象。

它什麼也沒做。

+1

如果@paramater是一個unsigned tinyint,它會將它轉換爲smallint。我在我的答案中有MS的鏈接。 – 2009-11-03 16:47:26

1

什麼類型是@parameter?這可能只是一個加號,(與減號相反)。對於數字類型,這不起作用。

+0

這是一個字符(20)...但它在任何情況下都可以看到一個整數值......所以也許它只是自動轉換它,並允許單值加號。 – Beska 2009-11-03 16:41:53

0

它看起來像是將參數轉換爲數字類型的簡短符號。根據您的數據庫服務器,可能甚至不需要它。

1

返回 數值_表達式的數據類型,不同之處在於無符號 TINYINT表達 被提升爲SMALLINT結果。

Positive unary operator