2015-09-16 33 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的。

相关问题