не находится таблица в sysobjects

SullenMan
Дата: 27.02.2010 18:08:16
есть такая конструкция
If Exists ( select * from dbo.sysobjects where id = object_id(N'[dbo].[TmpErrorTable]') 
   and OBJECTPROPERTY(id, N'IsUserTable') = 1 )
BEGIN 
     ...
END

TmpErrorTable - таблица, созданная в tempdb
Так вот она не находится в sysobjects.
Почему?
Glory
Дата: 27.02.2010 18:09:32
SullenMan
TmpErrorTable - таблица, созданная в tempdb
Так вот она не находится в sysobjects.
Почему?

Потому что текущая база у вас не tempdb
msLex
Дата: 27.02.2010 18:12:31
IF object_id(N'tempdb.[dbo].[TmpErrorTable]') IS NULL
BEGIN
END
Le Peace
Дата: 27.02.2010 18:36:20
msLex,

лучше так:
IF object_id(N'tempdb.[dbo].[TmpErrorTable]', 'U') IS NULL
BEGIN
END
SullenMan
Дата: 27.02.2010 23:31:53
IF object_id(N'tempdb.dbo.Test') IS NOT NULL
BEGIN
	PRINT '1'
END

IF EXISTS(SELECT * FROM dbo.sysobjects WHERE id = object_id(N'tempdb.dbo.Test'))
BEGIN
	PRINT '2'
END

вывод 1

Получается в sysobjects не все объекты заносятся что ли?
Glory
Дата: 27.02.2010 23:56:36
SullenMan

Получается в sysobjects не все объекты заносятся что ли?

Таблица sysobjects в каждой базе своя получается
SullenMan
Дата: 28.02.2010 11:48:13
Ок.
Как тогда проверить что в БД есть таблица. Именно таблица а не какой-нибудь другой объект с этим именнем
Glory
Дата: 28.02.2010 12:19:59
SullenMan
Ок.
Как тогда проверить что в БД есть таблица. Именно таблица а не какой-нибудь другой объект с этим именнем

Хм. Обращаться к sysobjects нужной базы ?
SullenMan
Дата: 28.02.2010 13:13:06
Glory
SullenMan
Ок.
Как тогда проверить что в БД есть таблица. Именно таблица а не какой-нибудь другой объект с этим именнем

Хм. Обращаться к sysobjects нужной базы ?

моя тормоз.
Всё спасибо. Я понял.