2017-09-04 1 views
0

すべてのテーブル、procs、およびビューの特定のスキーマを更新しようとしています。しかし、私はパーミッションエラーを受け取りました。私はすべてを試しました。SQLスキーマを更新する方法

下記のクエリのアクセス許可を正しく設定しても、以下のエラーが表示されないように助けてもらえますか。

クエリ

USE CAD 

DECLARE @OldSchema VARCHAR(200) 
DECLARE @NewSchema VARCHAR(200) 
DECLARE @SQL nvarchar(4000) 
SET @OldSchema = 'Storefront' 
SET @NewSchema = 'CadType' 

DECLARE tableCursor CURSOR FAST_FORWARD FOR 
    SELECT 'ALTER SCHEMA ['+ @OldSchema +'] TRANSFER [' + @NewSchema + '].[' + DbObjects.Name + '];' AS Cmd 
    FROM sys.Objects DbObjects 
    INNER JOIN sys.Schemas SysSchemas ON DbObjects.schema_id = SysSchemas.schema_id 
    WHERE SysSchemas.Name = @OldSchema 
    AND (DbObjects.Type IN ('U', 'P', 'V')) 
OPEN tableCursor 
FETCH NEXT FROM tableCursor INTO @SQL 
WHILE @@FETCH_STATUS = 0 
BEGIN 
    PRINT @SQL 
    EXEC (@SQL) 
    FETCH NEXT FROM tableCursor INTO @SQL 
END 
CLOSE tableCursor 
DEALLOCATE tableCursor 
PRINT '*** Finished ***' 

ERROR https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-schema-transact-sqlから

ALTER SCHEMA [Storefront] TRANSFER [CadType].[proc_UpdateVertical]; 
Msg 15151, Level 16, State 1, Line 1 
Cannot find the object 'proc_UpdateVertical', because it does not exist or you do not have permission. 
ALTER SCHEMA [Storefront] TRANSFER [CadType].[proc_UpdateElevationQty]; 
Msg 15151, Level 16, State 1, Line 1 
Cannot find the object 'proc_UpdateElevationQty', because it does not exist or you do not have permission. 
ALTER SCHEMA [Storefront] TRANSFER [CadType].[proc_Update_Set_LeafIsActive]; 
Msg 15151, Level 16, State 1, Line 1 

答えて

1

ALTER SCHEMA schema_nameに転送 securable_nameを[:: ENTITY_TYPE] [;]

個の

引数

schema_nameには、セキュリティ保護可能なが移動されますに現在のデータベース内のスキーマの名前です。 SYSまたは INFORMATION_SCHEMAにすることはできません。

securable_nameは、スキーマに含まれるスキーマにを移動することが可能に固定するの一一部または二部名前です。

だから、私は、スキーマが移動されていたという印象の下にあった、それはそうではありませんので、私は質問を

SELECT 'ALTER SCHEMA ['+ @NewSchema +'] TRANSFER [' + @OldSchema + '].[' + DbObjects.Name + '];' AS Cmd 
+0

グラッドを必要としています。これは、スキーマではなく転送される表です。私の問題は、まだCadTypeスキーマを作成してログインしたユーザーに設定していないことでした。それを認めても恥ずかしいです。 –

関連する問題