何时适合在存储过程中使用 "SELECT *"?



什么时候在存储过程中使用SELECT *合适?

对存储过程的输出使用SELECT *是不好的做法。当基础表发生更改时,SELECT *查询的输出将发生更改,从而导致潜在的问题。如果SP为web应用程序提供数据,则该web应用程序的一部分可能会中断。如果SP是由批处理进程执行的,则该进程可能会失败,从而导致其他问题,包括愤怒的DBA。

SELECT *正常的一种情况是在IF EXISTS检查的上下文中:

IF EXISTS (SELECT * FROM dbo.myTable)
BEGIN
  -- do something
END

编辑:但是,您可以很容易地使用SELECT 1来满足IF EXISTS检查。

最新更新