rak*_*afo 4 t-sql sql-server stored-procedures
我有一个存储过程,看起来像这样:
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
Run Code Online (Sandbox Code Playgroud)
我想在db2上不存在Column2的情况下运行此过程.我不想接受SP的存在检查.目前的错误是:
消息207,级别16,状态1,过程测试,第39行[批次开始行0]无效的列名称"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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
375 次 |
| 最近记录: |