4
在SQL Server(2008 R2),而不是這樣做:使用變量指定 '大小' 聲明時,VARBINARY
DECLARE @testVar VARBINARY(64);
我想做到這一點:
DECLARE @varSize INT;
SET @varSize = 64;
DECLARE @testVar VARBINARY(@varSize);
但我得到這個錯誤:
Incorrect syntax near '@varSize'.
我該如何做這樣的事情或強制SQL來評估@varSize?
爲什麼?只需聲明最大大小(例如'8000'或'max')。不會浪費任何實際的存儲空間。 – GSerg
你不能強制SQL去評估它,因爲處理實際上分兩個階段完成:1)編譯 - 所有的聲明都被編譯並且變量被分配並且默認值被設置,它被完成** ONCE **每個過程/包。 2)運行時 - 運行處理指令,每次運行過程/ SQL時都會發生這種情況。 'DECLARE ...'是編譯時間語句,'SET ...'是運行時語句。 –
注意:'MAX'確實比'8000'低。 [參考](http://rusanu.com/2010/03/22/performance-comparison-of-varcharmax-vs-varcharn/) –