gpt4 book ai didi

sql-server - Column不存在时编译

转载 作者:行者123 更新时间:2023-12-03 02:16:09 24 4
gpt4 key购买 nike

我有一个如下所示的存储过程:

create procedure test as
begin
if exists(
select 1 from sys.columns
where Name = N'Column2'
and Object_ID = Object_ID(Table2')
)

select Column2 from Table2
end

我想在Column2 不存在的数据库上运行此过程。我不想从 SP 中进行存在性检查。目前错误是:

Msg 207, Level 16, State 1, Procedure test, Line 39 [Batch Start Line 0] Invalid column name 'Column2'.

有什么办法可以做到吗?为什么可以,为什么不可以?

为什么,例如,如果您检查是否存在表并选择有效的不存在表?

最佳答案

使用动态 SQL:

create procedure test as
begin
if exists (select 1
from sys.columns
where Name = N'Column2' and Object_ID = Object_ID('Table2')
)
begin
exec sp_executesql N'select Column2 from Table2';
end;
end;

关于sql-server - Column不存在时编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39642794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com