在存储过程使用动态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掉,这样可能会影响效率,但没办法了~

相关文章:

  • 2021-06-05
  • 2021-11-28
  • 2021-12-08
  • 2022-12-23
  • 2021-11-11
  • 2021-10-04
  • 2021-08-07
猜你喜欢
  • 2021-11-28
  • 2021-06-24
  • 2021-12-12
  • 2021-12-01
  • 2021-12-14
相关资源
相似解决方案