您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么Microsoft SQL Server不检查存储的proc中的列而不检查表?

为什么Microsoft SQL Server不检查存储的proc中的列而不检查表?

这称为延迟名称解析。

无法关闭它。您可以使用动态sql或(讨厌的技巧!)添加对不存在的表的引用,以便推迟对该语句的编译。

CREATE PROCEDURE [dbo].[MyProcedure]
AS
BEGIN

CREATE TABLE #Dummy (c int)

    SELECT
        NonExistantCol1, NonExistantCol2, NonExistantCol3
    FROM
        ExistantTable 
    WHERE NOT EXISTS(SELECT * FROM #Dummy)


DROP TABLE #Dummy

END
GO
SQLServer 2022/1/1 18:52:22 有391人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶