2015-09-16 32 views
0

我們可以檢查#t1是否存在使用OBJECT_ID('TEMPDB..#t1')OBJECT_ID('TEMPDB ..#t1')和OBJECT_ID(N'TEMPDB ..#t1')是否有區別

但我也看過很多次OBJECT_ID(N'TEMPDB..#t1')

我已經搜索了,但沒有得到任何答案。他們之間有任何真正的區別?

如果有什麼區別,那麼使用哪一個?

+1

我認爲你的qustion與'N'有關,這裏是答案..http://stackoverflow.com/a/14353275/1460657 –

+1

謝謝Anant我知道了。這篇文章詳細解釋了我。 –

回答

3

首先, 在OBJECT_ID(N'TEMPDB..#t1') -

Ñ」 用於指定一個unicode字符串。

第二件事,這兩種語法都可以工作,但這取決於您的要求。

PSN'表示 - 發送unicode字符。

0

第一個:OBJECT_ID('TEMPDB..#t1')使用varchar表示法,第二個:OBJECT_ID(N'TEMPDB..#t1')使用nvarchar表示法。

但行爲是相同的

1

語法是:

OBJECT_ID ('[ database_name . [ schema_name ] . | schema_name . ] 
    object_name' [ ,'object_type' ]) 

參數

  • ' object_name '

    是要使用的對象。 object_name是varchar或nvarchar。 如果object_name是varchar,則它將隱式轉換爲nvarchar。指定數據庫和模式名稱是可選的。

  • ' object_type '

    是架構範圍的對象類型。 object_type是varchar或nvarchar。如果object_type是varchar,則它隱式轉換爲nvarchar。有關對象類型的列表,請參閱sys.objects(Transact-SQL)中的類型列。

使用N將代表一個字符串作爲nvarchar的。

相關問題