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



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



пример:



С



dbo.Employees


до



exe.Employees


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



ALTER SCHEMA exe TRANSFER dbo.Employees


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




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




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

721   10  

10 ответов:

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

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

изменить схему :

ALTER SCHEMA exe 
    TRANSFER dbo.Employees

попробовать ниже

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
ALTER SCHEMA NewSchema TRANSFER [OldSchema].[TableName]

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

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

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

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

USE (yourservername)  
ALTER SCHEMA exe TRANSFER dbo.Employees 

код:

FROM
 dbo.Employees
TO
 exe.Employees

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

ALTER SCHEMA exe TRANSFER dbo.Employees

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

CREATE SCHEMA exe AUTHORIZATION [dbo]
GO

ALTER SCHEMA exe
TRANSFER dbo.Employees
GO

для более подробной информации нажмите здесь

Проверьте MSDN...

CREATE SCHEMA: http://msdn.microsoft.com/en-us/library/ms189462.aspx

затем

ALTER SCHEMA: http://msdn.microsoft.com/en-us/library/ms173423.aspx

или вы можете проверить его на так...

как переместить таблицу в схему в T-SQL

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

exec sp_rename 'Nameofobject', 'ReNameofobject'

убедитесь, что вы находитесь в правильном контексте базы данных в SSMS. Получил ту же ошибку, что и вы, но я знал, что схема уже существует. Не понимал, что я был в "мастерском" контексте. ALTER работал после того, как я изменил контекст в моей базе данных.

создать новую схему, выполните следующие действия:

1. Open your Database. 2. Route to Security folder. 3. Inside it is a folder named Schema. 4. Right click the schema folder> New Schema. 5. Add a Schema > Click OK.

чтобы изменить схему, выполните следующую команду sql:

ALTER SCHEMA new_schema TRANSFER dbo.Employees

Comments

    Ничего не найдено.