OBJECT_ID(' TEMPDB ..#t1')和OBJECT_ID(N' TEMPDB ..#t1')之间有什么区别吗?

时间:2015-09-16 06:30:21

标签: sql-server tsql

我们可以使用#t1检查OBJECT_ID('TEMPDB..#t1')是否存在。

但我也多次见过OBJECT_ID(N'TEMPDB..#t1')

我已经搜索过但没有得到任何答案。他们之间有什么真正的区别吗?

如果有什么不同,那么使用哪一个?

3 个答案:

答案 0 :(得分:3)

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

  

N ”用于指定unicode字符串。

其次,语法都可以,但这取决于你的要求。

PS N'表示 - 发送unicode字符。

答案 1 :(得分: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)中的type列。

  

使用 N 会将字符串表示为nvarchar。

答案 2 :(得分:0)

第一个:id name age country 1 alex 21 Brazil 2 maria 34 England 3 ... 56 ... 使用varchar表示法,第二个:OBJECT_ID('TEMPDB..#t1')使用nvarchar表示法。

但行为是一样的