2014-11-14 1 views
0

У меня возникает проблемы, чтобы найти идентичность наносятся на таблицу с конкретным ColumnName или не из другой базы данных на одном сервере (с использованием information_schema):Найти, если столбец имеет идентификатор из другой базы данных на одном сервере в сервере SQL

Следующей строкой использование запроса на поиск, если личность применяется на колонке или не из одной базы данных:

if exists(Select OBJECTPROPERTY(object_id('TableName'), 'TableHasIdentity')) --This give result from same database 
begin 
    print 'SET IDENTITY_INSERT ARCHIVE_Database.dbo.TableName ON' 
    print 'insert into ARCHIVE_Database.dbo.TableName(ID,Name) values 1,''Ankush'' ' 
    print 'SET IDENTITY_INSERT ARCHIVE_Database.dbo.TableName OFF' 
end 
else 
    print 'insert into ARCHIVE_Database.dbo.TableName(ID,Name) values 1,''Ankush'' ' 

Может ли мы заменить Select OBJECTPROPERTY(object_id('TableName'), 'TableHasIdentity')) линии, чтобы найти идентичность применяется на столе или не из базы данных ARCHIVE_Database

ответ

0

I рг что вы имеете в виду выяснить, существует ли столбец идентификатора в таблице в другой базе данных, в которой вы находитесь:

IF EXISTS (SELECT * 
from ARCHIVE_Database.sys.tables t 
INNER JOIN ARCHIVE_Database.sys.columns c 
    ON c.object_id = t.object_id 
WHERE t.object_id = OBJECT_ID('ARCHIVE_Database.dbo.TableName') AND is_identity = 1) 
BEGIN 
    ... 
END