2012-10-05 15 views
0

我被困在这个地方。我试图获得一个单一的行集值在一个变量。单排变量

DECLARE @last_timestamp as varchar; 
SET @last_timestamp = SELECT MAX(modify_timestamp) FROM dbo.table1 
PRINT @last_timestamp 

它返回下面的错误

Msg 156, Level 15, State 1, Line 2 
Incorrect syntax near the keyword 'SELECT'. 

是光标对这个问题的唯一解决方案。任何帮助将有所帮助?

回答

0

尝试:

DECLARE @last_timestamp as varchar; 
SELECT @last_timestamp = MAX(modify_timestamp) FROM dbo.table1 
PRINT @last_timestamp 

DECLARE @last_timestamp as varchar; 
SET @last_timestamp = (SELECT MAX(modify_timestamp) FROM dbo.table1) 
PRINT @last_timestamp 
1
SELECT @last_timestamp := MAX(modify_timestamp) FROM dbo.table1 

SELECT MAX(modify_timestamp) INTO @last_timestamp FROM dbo.table1 

SET @last_timestamp = (SELECT MAX(modify_timestamp) FROM dbo.table1) 
+0

很透彻,但我从来没有使用:=运算符。给谷歌! –

0

您可以将parenthese围绕SELECT声明

DECLARE @last_timestamp as varchar; 
SET @last_timestamp = (SELECT MAX(modify_timestamp) FROM dbo.table1) 
PRINT @last_timestamp