該查詢按原樣執行。但是,SQL Management Studio不會將其保存爲視圖,因爲我定義了一個變量。查看,存儲過程或表定義的函數
DECLARE @HighestTransaction int SET @HighestTransaction = (SELECT MAX(CardID) FROM dbo.Transactions) SELECT Uploads.*, Transactions.* FROM Uploads LEFT OUTER JOIN dbo.Transactions ON dbo.Uploads.Code = dbo.Transactions.CardID WHERE (Uploads.Code > CASE WHEN @HighestTransaction IS NULL THEN -1 ELSE @HighestTransaction END)
我還沒有真正發揮各地使用存儲過程,或用戶定義的函數一大堆,所以我不知道的去這樣做的最佳方式。或者,如果有更好的方法來寫這篇文章,我也會接受建議。
,並指定你在需要的領域選擇。選擇*是一種特別差的編碼習慣,因爲你有一個加入,你會返回一個字段兩次,這是浪費資源。 – HLGEM 2011-01-26 20:39:00
如果其中一個表的列數很少,那麼SELECT *會出現問題,另一個是非常具體的視圖,並且所有結果列將由調用方使用?無論如何,我寫了SELECT *來節省空間,而不是分散其他東西。真正的查詢確實展開了所有的列,因爲這是VS和SQL Management Studio在安裝SELECT *時自動執行的操作。 – kettch 2011-01-26 22:56:43