中的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'),'
[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 一個子句,可應用於數據庫定義或列定義以定義排序規則,或應用於字符串表達式以應用排序規則投影。