Я хочу изменить имя схемы таблицы Employees
в базе данных. В текущей таблице Employees
имя базы данных схемы dbo
я хочу изменить на exe
. Как мне это сделать ?
Пример:
ИЗ
dbo.Employees
К
exe.Employees
Я пытался с этим запросом:
ALTER SCHEMA exe TRANSFER dbo.Employees
Но это дает мне ошибку:
Невозможно изменить схему exe, поскольку она не существует или у вас нет разрешения.
Что я пропустил?
sql
sql-server
tsql
schema
чемпион
источник
источник
create schema
: msdn.microsoft.com/en-US/library/ms189462%28v=sql.90%29.aspxОтветы:
Создать схему:
Схема ALTER:
источник
sys.schemas
таблица, содержащая все схемы для базы данных Exec ('...') просто выполняет динамический вызов SQL, в этом случае это необходимо, потому что команда CREATE SCHEMA должна быть первым оператором в пакете запроса и выполняться, когда динамический SQL получает это.Попробуй ниже
источник
set @sql = 'alter schema [' + @newschema + '] transfer [' + @oldschema + '].' + @table
чтобы убедиться, что некоторые специальные слова / символы не вызывают ошибку.Я всегда должен использовать скобки, когда я использую
ALTER SCHEMA
запрос в SQL, или я получаю сообщение об ошибке.источник
Через SSMS я создал новую схему:
Я нашел этот пост, чтобы изменить схему, но также получал ту же ошибку прав доступа при попытке перейти на новую схему. У меня есть несколько баз данных, перечисленных в моей SSMS, поэтому я просто попытался указать базу данных, и это сработало:
источник
Ваш код:
Я пытался с этим запросом.
Просто напишите
create schema exe
и выполните егоисточник
источник
Проверьте MSDN ...
CREATE SCHEMA
: http://msdn.microsoft.com/en-us/library/ms189462.aspxзатем
ALTER SCHEMA
: http://msdn.microsoft.com/en-us/library/ms173423.aspxИли вы можете проверить это на SO ...
Как переместить таблицу в схему в T-SQL
источник
Будьте очень, очень осторожны, переименовывая объекты в sql. Вы можете привести к сбою зависимостей, если вы не совсем уверены в том, что вы делаете. Сказав, что это работает легко (слишком много) для переименования вещей, если у вас есть правильный доступ к среде:
источник
exec sp_rename 'dbo.Employees', 'exe.Employees'
вы бы получили имя [dbo]. [Exe.Employees]Убедитесь, что вы находитесь в правильном контексте базы данных в SSMS. Получил ту же ошибку, что и вы, но я знал, что схема уже существует. Не понимал, что я был в «МАСТЕР» контексте. ALTER работал после того, как я изменил контекст моей базы данных.
источник
В случае, если кто-то ищет более низкую версию -
Для SQL Server 2000:
sp_changeobjectowner @objname = 'dbo.Employess', @newowner = 'exe'
источник