我想执行一个SQL查询来查找数据库中没有特定列的所有表吗?
E.g。我想要一个没有名为' BranchID'。
的列的表列表感谢您的关注。
答案 0 :(得分:3)
信息架构视图包含有关数据库的元数据。有关详细信息,请转到here
使用这些视图你可以做这样的事情......
Private Sub Worksheet_Change(ByVal Target As Range)
Const Scope = "C2:C5" ' monitoring area
Static oData As New Dictionary
Dim rCells As Range
Dim oCell
Dim dDelta
Set rCells = Application.Intersect(Target, Target.Parent.Range(Scope))
If Not rCells Is Nothing Then
For Each oCell In rCells
With oCell
dDelta = .Value - oData(.Address)
If dDelta <> 0 Then
.Offset(0, 1).Value = dDelta
oData(.Address) = .Value
End If
End With
Next
End If
End Sub
答案 1 :(得分:0)
[user@user ~]$ echo "modified: ASCourses-UI-vechi/bin/.gitignore" | sed 's/modified:\s\+//'
ASCourses-UI-vechi/bin/.gitignore
(从内存来看,我的列名可能不对,但应该让你大部分时间都在那里:))
答案 2 :(得分:0)
这应该有用。
select table_name
from INFORMATION_SCHEMA.COLUMNS
except
select table_name
from INFORMATION_SCHEMA.COLUMNS
where column_name = 'BranchID'
首先,我们从Information_Schema.Columns中选择table_name,其中table_name不在选择具有Branch_ID列的表的查询中
答案 3 :(得分:0)
您可以使用INFORMATION_SCHEMA.COLUMNS表和INFORMATION_SCHEMA.TABLES表来使用普通SQL查询获取所需信息。
在您的情况下,您将使用子查询:
ole_obj_->Close(OLECLOSE_NOSAVE);
答案 4 :(得分:0)
我创建了一个可以帮助您的可重复使用的程序。
CREATE PROC SP_UTIL_findcolumns
@SearchString As varchar(250) = NULL
AS
BEGIN
SELECT
t.TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES AS t
WHERE NOT EXISTS
(SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS AS c
WHERE c.TABLE_NAME = t.TABLE_NAME
AND c.COLUMN_NAME = @SearchString )
END