gpt4 book ai didi

sql - 是否可以动态检查该列是否存在于另一个数据库的表中

转载 作者:行者123 更新时间:2023-12-04 14:32:31 27 4
gpt4 key购买 nike

所以我必须知道该列是否存在于另一个数据库的表中。我无法切换数据库上下文,也无法使用动态 SQL,因为我必须在标量函数内执行此操作。

我该怎么做?

我可以通过检查 object_id('<database name>.<schema name>.<table name>') 来确定该表是否存在,但我找不到检查该列是否存在的方法。

似乎不可能用object_id()来做函数,列没有类型 - sys.objects

更新。我完全忘了提到 <database name> , <schema name> , <table name><column name>是变量,所以不可能使用 information_schemasys表/ View 。所以应该是这样的

declare
@database_name nvarchar(128),
@schema_name nvarchar(128),
@table_name nvarchar(128),
@column_name nvarchar(128)

if object_id(@database_name + '.' + @schema_name + '.' + @table_name) is not null
print 'Table exists'
else
print 'Table does not exist'

if <??? how to check if column exists ???>
print 'Column exists'
else
print 'Column does not exist'

最佳答案

试试这个..

if exists(  select top 1 1
from Sys.tables t
join Sys.columns c
on t.object_id = c.object_id
where t.name = 'Your_Table_name'
and c.name = 'Your_Column_name')
select 'Your Cloumn Exists'
else
select 'Your Cloumn Does not Exist'

关于sql - 是否可以动态检查该列是否存在于另一个数据库的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29696598/

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