Sqlserver存儲過程是時常使用到的一個數據庫對象,在存儲過程中會使用到Declare來定義存儲過程變量,定義的存儲過程變量可以通過Set或者Select等關鍵字方法來進行賦值操作,使用Set對存儲過程變量賦值為直接賦值,使用Select則一般從數據表中查找出符合條件的屬性進行賦值操作。
例如,下面定義一個存儲過程年齡字段@Age字段。
Declare @Age int;
使用Set方式賦值的語句可寫作為:Set @Age=32;
如果我們要從表UserTable中查找出名字為張三的人的年齡,然后將之賦值給@Age變量,就得使用Select方式來賦值了,賦值方式如下:
Select @Age=Age FROM UserTable Where Name='張三';
此處使用Select進行賦值的話需要注意個點,Select查詢語句一條記錄都沒查找出來,@Age字段將不會有任何改變,也不會賦值為Null,這個情況博主在實際業務中遇到過,就是使用了while循環,然后在循環中采用Select對特定變量賦值,發現如果Select查詢集合為空集的時候,變量值不是賦值為NULL,而是直接保持上一次循環賦值的結果。