Изменить название схемы таблицы в SQL

Я хочу изменить имя схемы таблицы Employees в базе данных. В текущей таблице Employees имя схемы базы данных dbo я хочу изменить ее на exe. Как мне это сделать?

Пример:

FROM

dbo.Employees

К

exe.Employees

Я попытался с этим запросом:

ALTER SCHEMA exe TRANSFER dbo.Employees

Но это дает мне ошибку:

Невозможно изменить схему "exe", потому что она не существует или вы не имеют разрешение.

Что я пропустил?

96
18 марта '13 в 20:13
источник поделиться
9 ответов

Создать схему:

IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'exe')) 
BEGIN
    EXEC ('CREATE SCHEMA [exe] AUTHORIZATION [dbo]')
END

Схема ALTER:

ALTER SCHEMA exe 
    TRANSFER dbo.Employees
159
18 марта '13 в 20:32
источник

Связанные вопросы


Похожие вопросы

Попробуйте ниже

declare @sql varchar(8000), @table varchar(1000), @oldschema varchar(1000), @newschema   varchar(1000)

  set @oldschema = 'dbo'
  set @newschema = 'exe'

 while exists(select * from sys.tables where schema_name(schema_id) = @oldschema)

  begin
      select @table = name from sys.tables 
      where object_id in(select min(object_id) from sys.tables where  schema_name(schema_id)  = @oldschema)

    set @sql = 'alter schema ' + @newschema + ' transfer ' + @oldschema + '.' + @table

   exec(@sql)
 end
16
18 марта '13 в 20:20
источник
ALTER SCHEMA NewSchema TRANSFER [OldSchema].[TableName]

Мне всегда нужно использовать скобки, когда я использую запрос ALTER SCHEMA в SQL, или я получаю сообщение об ошибке.

8
25 сент. '15 в 23:02
источник

Через SSMS я создал новую схему:

  • Нажав папку "Безопасность" в обозревателе объектов на моем сервере,
  • щелкните правой кнопкой мыши Схемы
  • Выбранная "Новая схема..."
  • Именовала мою новую схему (exe в вашем случае)
  • Нажмите OK

Я нашел этот пост, чтобы изменить схему, но также получал ту же самую ошибку при попытке перейти на новую схему. У меня есть несколько баз данных, перечисленных в моем SSMS, поэтому я просто попробовал указать базу данных и работал:

USE (yourservername)  
ALTER SCHEMA exe TRANSFER dbo.Employees 
4
15 окт. '14 в 0:30
источник

Ваш код:

FROM
 dbo.Employees
TO
 exe.Employees

Я попытался с этим запросом.

ALTER SCHEMA exe TRANSFER dbo.Employees

Просто напишите create schema exe и выполните его

3
19 июля '13 в 16:17
источник
CREATE SCHEMA exe AUTHORIZATION [dbo]
GO

ALTER SCHEMA exe
TRANSFER dbo.Employees
GO

Подробнее нажмите здесь

2
02 дек. '15 в 8:59
источник

Проверьте 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

2
18 марта '13 в 20:18
источник

Будьте очень осторожны, переименовывая объекты в sql. Вы можете вызывать зависания зависимостей, если вы не полностью ушли от того, что делаете. Сказав, что это работает легко (слишком много) для переименования вещей, если у вас есть доступ к окружающей среде:

exec sp_rename 'Nameofobject', 'ReNameofobject'
0
18 марта '13 в 20:17
источник

Убедитесь, что вы находитесь в правильном контексте базы данных в SSMS. Получил ту же ошибку, что и вы, но я знал, что схема уже существует. Не понял, что я был в контексте "МАСТЕР". ALTER работал после того, как я изменил контекст на мою базу данных.

0
03 дек. '15 в 21:55
источник

Посмотрите другие вопросы по меткам или Задайте вопрос