Подтвердить что ты не робот

Изменение владельца диаграммы базы данных в SQL Server 2005

Мне нужно изменить владельца диаграммы базы данных в SQL Server 2005. В настоящее время она принадлежит мне (домен\имя_пользователя .diagramName), и я хотел бы изменить ее, чтобы она принадлежала dbo (dbo.diagramName). Я думал, что могу использовать sp_changeobjectowner, но я считаю, что это только для таблиц, хранимых процедур и т.д. Я думаю, что это довольно просто, я просто не смог найти что-либо в поиске Google.

4b9b3361

Ответ 1

В конце концов, мне пришлось удалить эту схему пользователей, а затем запустить следующее обновление...

-- to identify the diagram id, name, & owner

select *
from dbo.sysdiagrams


-- to manually change the owner of a diagram
-- note: i derived that the principal_id =1 for dbo from above query

update 
dbo.sysdiagrams set principal_id =1 where diagram_id = 1

В итоге я получил помощь, необходимую мне из DBA здесь, на территории кампуса.

Ответ 2

UPDATE dbo.sysdiagrams 
SET principal_id = 1

Установите условие WHERE, если это необходимо. В приведенном выше тексте предлагается удалить пользователя из базы данных, но мне не нужно было этого делать. Я использую SQL2008 R2.

Ответ 3

USE [db_name]
UPDATE dbo.sysdiagrams 
SET principal_id = 1

Если инструкция выше не работает, вы можете сделать редактирование в этой таблице, щелкнув правой кнопкой мыши по dbo.sysdiagrams и выбрать Edit top 200 rows, тогда вы можете установить столбец main_id для всех записей, вручную установленных на 1

Ответ 4

В этой статье говорится, что вам придется удалить себя как пользователя из db. Откройте его с пользователем по вашему выбору.

http://msdn.microsoft.com/en-us/library/ms171972(VS.80).aspx

Ответ 5

Хотя это не помогло бы в этом случае (потому что он просто воссоздает всю строку sysdiagrams), эти скрипты

ScriptDiagram2005 или ScriptDiagram2008

позволяет создать INSERT script содержимого диаграмм ', который будет повторно запускаться с исходной базой данных (или с резервной копией, или с копией сценария, или любым другим). Вы можете легко (зная, что теперь знаете о principal_id), снова создайте диаграмму с новым владельцем.

Просто найдите и отредактируйте остальную часть этого утверждения в script

INSERT INTO sysdiagrams ([name], [principal_id], [version], [definition])

реальная выгода заключается в возможности управления исходным кодом/резервного копирования текстового файла...