使用动态SQL的一点小技巧
在存储过程使用动态SQL时,如果在动态SQL中需用到之前定义的变量,则不能直接使用,而必须这样:
SET @Sql = N'SELECT @a = MAX(LogTime) FROM LogTable'
EXEC sp_executesql @Sql,N'@a datetime output',@LogTime output
其中,@LogTime即为之前定义的变量,类型为datetime
如果在动态SQL中要用到之前定义的表变量,好像没有办法直接实现,而只能用一个折中的方法,将该表变量定义成一个临时表,用完后drop掉,这样可能会影响效率,但没办法了~
posted on 2007-08-31 08:13 bartholomew 阅读(401) 评论(0) 编辑 收藏 举报