所以我在形勢時,我必須知道,如果在另一個數據庫表中存在的列。我無法切換數據庫上下文,也無法使用動態SQL,因爲我必須在標量函數內部執行此操作。是否可以檢查是否在該表存在於另一個數據庫中的列,動態
我該怎麼做?
我可以找到,如果表中存在,通過檢查object_id('<database name>.<schema name>.<table name>')
,但我不能找到一個方法來檢查,如果列中存在。
這似乎不可能object_id()
功能做的,沒有類型列 - sys.objects
更新。我完全忘記提及<database name>
,<schema name>
,<table name>
和<column name>
是VARIABLES,因此無法使用information_schema
或sys
表/視圖。因此,它應該是這樣的
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'
喜請檢查更新的版本,我想這個問題的要點,我必須這樣做動態 –