當前位置:成語大全網 - 新華字典 - SQL如何在壹個數據庫中查詢已知列名的所在表

SQL如何在壹個數據庫中查詢已知列名的所在表

OBJECT_ID : 返回數據庫對象標識號

例如:

use master

Select Object_Id(N'pubs..authors') //查看pubs數據庫裏的authors表的object_id對象標識號。

OBJECTPROPERTY : 返回當前數據庫中對象的有關信息

語法 : OBJECTPROPERTY ( id , property )

例如:

OBJECTPROPERTY (object_id(N'authors') , N'ISTABLE') = 1

select * from dbo.sysobjects where Object_Id(N'myTable') AND OBJECTPROPERTY(id, N'IsTable') = 1

OBJECT_ID:返回數據庫對象標識號。N是顯式的將非unicode字符轉成unicode字符,它來自 SQL-92 標準中的 National(Unicode)數據類型,用於擴展和標準化,在這裏可以不用,寫作object_id(PerPersonData)。

OBJECTPROPERTY:返回當前數據庫中對象的有關信息。1表“真”。同樣可以寫成OBJECTPROPERTY(id, sUserTable) = 1。

整條語句的意思是判斷數據庫裏有沒有存在PerPersonData這樣壹張表。

整條語句可以簡寫成:

if exists (select * from sysobjects where objectproperty(object_id('PerPersonData'),'istable') = 1)

判斷myTalbe對象是否是壹個表。

If exists (select * from dbo.sysObjects

where id = Object_Id(N'myTable') and ObjectProperty(id, N'IsUserTable') = 1)

判斷myProc對象是否是壹個存儲過程。

If exists (select * from dbo.sysObjects

where id = Object_Id(N'myProc') and ObjectProperty(id, N'IsProcedure') = 1)

判斷myFun對象是否是壹個自定義、標量值函數。

If exists (select * from dbo.sysObjects

where id = Object_Id(N'myFun') and ObjectProperty(id, N'IsScalarFunction') = 1)

判斷myFun對象是否是壹個表值函數。

If exists (select * from dbo.sysObjects

where id = Object_Id(N'myFun') and ObjectProperty(id, N'IsTableFunction') = 1)

其他更多ObjectProperty屬性的 property 值參考

/library/ms176105.aspx