默認值賦給一個局部變量我想聲明局部變量,如:不能在SQL
DECLARE @thresholdDate DATETIME = '2014-11-30'
而且我得到錯誤:
Cannot assign a default value to a local variable.
DECLARE @find varchar(30);
/* Also allowed:
DECLARE @find varchar(30) = 'Man%';
*/
我做錯了什麼?
默認值賦給一個局部變量我想聲明局部變量,如:不能在SQL
DECLARE @thresholdDate DATETIME = '2014-11-30'
而且我得到錯誤:
Cannot assign a default value to a local variable.
DECLARE @find varchar(30);
/* Also allowed:
DECLARE @find varchar(30) = 'Man%';
*/
我做錯了什麼?
在SQL Server 2008之前,不允許將默認值(或初始值)分配給局部變量;否則會遇到此錯誤消息。
解決方案1:(使用SET
)
DECLARE @thresholdDate DATETIME
set @thresholdDate = '2014-11-30'
有關錯誤的詳細信息:http://www.sql-server-helper.com/error-messages/msg-139.aspx
解決方案2:(升級)
避免的另一種方式此錯誤有點牽強的解決方案是升級到SQL Server 2 008.現在,SQL Server 2008允許在DECLARE語句中爲變量賦值。
錯誤
Cannot assign a default value to a local variable
如果您正在使用SQL Server 2005中而分配default value
到local variable
發生。
對於SQL Server 2005中使用此代碼:
DECLARE @thresholdDate AS DATETIME
SET @thresholdDate = '2014-11-30'
SELECT @thresholdDate
對於SQL Server 2008和較新的您可以使用它代替:
DECLARE @thresholdDate DATETIME = '2014-11-30'
SELECT @thresholdDate
'DECLARE @thresholdDate DATETIME ='2014-11-30' '將在'SQL SERVER 2008' +中工作。 – 2014-11-21 11:48:39
你會打這個錯誤
Cannot assign a default value to a local variable
in cas如果您正在運行SQL Server 2005或更早版本,並且您嘗試聲明一個變量並在一個語句中爲其賦值。
喜歡的東西 -
DECLARE @Var Varchar(15) = 'Test'
Message 139, Level 15, State 1, Line 0
Cannot assign a default value to a local variable
變量聲明得到了增強,在SQL Server 2008及更高版本,並且我意識到這一點今天,當我部署多個系統代碼。
顯然,我們還可以靈活地只使用一個Declare語句來聲明多個變量 -
DECLARE @Var Varchar(15) = 'Test',
@Char Varchar(10) = 'Test2',
@Char2 Varchar(10) = 'Test3'
在SQL Server 2005或更早版本,您將需要聲明的變量,然後分配它是一個使用Set語句的值。
實施例 -
DECLARE @Var Varchar(15)
SET @Var = 'Test'
它不是在'SQL SERVER 2005'可能的。它支持SQL SEVER 2008和以上版本 – 2014-11-21 11:50:56
在您的文檔鏈接中,使用頂部的* Other Versions *下拉菜單選擇* SQL 2005 *以獲取正確的語法。 – 2014-11-21 11:51:38