不废话,用事实说明(此代码本人在sql server 2005可以运行) CREATE TABLE TEST(A INT) /*建表*/ INSERT INTO TEST(A)VALUES('7') /*插入数据*/ INSERT INTO TEST(A)VALUES('8') DECLARE @T1 INT, /*声明变量*/ @T2 INT, @T3 INT SET @T1=55 /*初始化变量*/ SET @T2=55 SET @T3=55 SET @T1=(SELECT TOP 1 A FROM TEST WHERE A=9) SELECT @T2=A FROM TEST WHERE A=9 SELECT @T3=(SELECT TOP 1 A FROM TEST WHERE A=9) SELECT @T1,@T2,@T3 显示的结果是 NULL55NULL