Вот это
use base1
select COLUMNPROPERTY(object_id('base1.schema.table'), 'column_name', 'IsIdentity')
Выводит значение свойства 0 или 1
А вот это
use base2
select COLUMNPROPERTY(object_id('base1.schema.table'), 'column_name', 'IsIdentity')
Выводит NULL
"use" в хранимке использовать нельзя, это используется только на девелоперской локальной базе — права вроде максимально возможные.
Куда копать?
Жизнь не обязана доставлять удовольствие. Достаточно отсутствия страданий.
Здравствуйте, s_aa, Вы писали:
_>Вот это
_>_>use base1
_>select COLUMNPROPERTY(object_id('base1.schema.table'), 'column_name', 'IsIdentity')
_>
_>Выводит значение свойства 0 или 1
_>А вот это
_>_>use base2
_>select COLUMNPROPERTY(object_id('base1.schema.table'), 'column_name', 'IsIdentity')
_>
_>Выводит NULL
_>"use" в хранимке использовать нельзя, это используется только на девелоперской локальной базе — права вроде максимально возможные.
_>Куда копать?
Какая версия сервера?
Запрос
use base2
select top 1 * from base1.schema.table
отрабатывает?
Если да, то проверяйте следующий
use base2
select object_id('base1.schema.table')
BE>Какая версия сервера?
2014
BE>Запрос
BE>BE>use base2
BE>select top 1 * from base1.schema.table
BE>
BE>отрабатывает?
BE>Если да, то проверяйте следующий
BE>BE>use base2
BE>select object_id('base1.schema.table')
BE>
Да, id таблицы выдает. Ошибка именно на columnproperty
Жизнь не обязана доставлять удовольствие. Достаточно отсутствия страданий.
Здравствуйте, s_aa, Вы писали:
_>Да, id таблицы выдает. Ошибка именно на columnproperty
Возвращает значение NULL в случае ошибки или если участник не имеет разрешений для просмотра объекта.
Пользователь может просматривать только метаданные защищаемых объектов, которыми он владеет или на которые пользователю были предоставлены разрешения. Это означает, что встроенные функции, создающие метаданные, такие как COLUMNPROPERTY, могут вернуть значение NULL в случае, если у пользователя нет правильных разрешений на объект. Дополнительные сведения см. в разделе Metadata Visibility Configuration.
Настройка видимости метаданных
Здравствуйте, s_aa, Вы писали:
В общем, COLUMNPROPERTY работает только в текущей бд.
Нужно использовать что-то типа
select o.name + '.' + c.name, o.name
from testdb.sys.columns c
join testdb.sys.objects o on c.object_id = o.object_id
join testdb.sys.schemas s on s.schema_id = o.schema_id
where s.name = 'dbo'
and o.is_ms_shipped = 0 and o.type = 'U'
and c.is_identity = 1
order by o.name