判斷數據庫中是否存在相應的表

 
這句話是什麼意思?if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PerPer請問:if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PerPersonData]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
中的object_id(N'[dbo].[PerPersonData]')是什麼意思?那個object_id函數?那個N?
還有OBJECTPROPERTY(id, N'IsUserTable') = 1中的OBJECTPROPERTY函數是什麼意思?那個=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'),'
CREATE TABLE [dbo].[picturenews] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[image] [image] NULL ,
[content] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL ,
[detail] [varchar] (5000) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

說明 collate 一個子句,可應用於數據庫定義或列定義以定義排序規則,或應用於字符串表達式以應用排序規則投影。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章