T-SQL Уперся не знаю что делать?
От: s_aa Россия  
Дата: 30.07.21 08:59
Оценка:
Вот это
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" в хранимке использовать нельзя, это используется только на девелоперской локальной базе — права вроде максимально возможные.

Куда копать?
Жизнь не обязана доставлять удовольствие. Достаточно отсутствия страданий.
Re: T-SQL Уперся не знаю что делать?
От: BlackEric http://black-eric.lj.ru
Дата: 30.07.21 09:12
Оценка:
Здравствуйте, 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')
https://github.com/BlackEric001
Re[2]: T-SQL Уперся не знаю что делать?
От: s_aa Россия  
Дата: 30.07.21 09:18
Оценка:
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
Жизнь не обязана доставлять удовольствие. Достаточно отсутствия страданий.
Re[3]: T-SQL Уперся не знаю что делать?
От: BlackEric http://black-eric.lj.ru
Дата: 30.07.21 09:50
Оценка: +1
Здравствуйте, s_aa, Вы писали:

_>Да, id таблицы выдает. Ошибка именно на columnproperty


Возвращает значение NULL в случае ошибки или если участник не имеет разрешений для просмотра объекта.

Пользователь может просматривать только метаданные защищаемых объектов, которыми он владеет или на которые пользователю были предоставлены разрешения. Это означает, что встроенные функции, создающие метаданные, такие как COLUMNPROPERTY, могут вернуть значение NULL в случае, если у пользователя нет правильных разрешений на объект. Дополнительные сведения см. в разделе Metadata Visibility Configuration.
Настройка видимости метаданных
https://github.com/BlackEric001
Re[3]: T-SQL Уперся не знаю что делать?
От: BlackEric http://black-eric.lj.ru
Дата: 30.07.21 09:53
Оценка: 82 (2)
Здравствуйте, 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
https://github.com/BlackEric001
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.