web-dev-qa-db-ja.com

データ層アプリケーションをデプロイする際の追加の構成?

私はいくつかの新しいデータベースプロジェクトを開始しており、データ層アプリケーションでそれらを作成しようとしています。ドキュメントが見つからない項目が2つあります。 dbの所有者をSAに設定し、初期ファイルサイズと成長率を設定したいと思います。これらのアイテムがアプリの範囲外であっても、指定する方法があると思います。 SSDTまたはSSMSのいずれかで、公開時にドキュメントを見つけることができません。これは本当ですか?

1
Jeff Sacksteder

CREATEまたはALTERDATABASEステートメントの一部として所有権を設定/変更する直接的な方法はありません。

これを強制したい場合は、sp_changedbownerを呼び出すデプロイメント後のスクリプトを追加することでこれを行うことができます。

This 記事で詳しく説明しています。同様のアプローチを適用して、初期ファイルサイズと成長率を設定することもできます。

また、注として:sp_changedbownerは現在減価償却されているため、 ALTER AUTHORIZATION を使用することをお勧めします。

3
Kin Shah

私の知る限り、データベース所有者の前で@Kinに同意します。これは、デプロイメント後のスクリプトを使用して実行する必要があります。

PRIMARY以外のファイルグループを作成する限り、SSDTオブジェクトスクリプトを使用してファイルサイズの問題を処理できます。とにかくこれは一般的に推奨されているので、なぜそうしないのですか。

ファイルグループスクリプト:

ALTER DATABASE [$(DatabaseName)]
ADD FILEGROUP [USER];

ファイル1:

ALTER DATABASE [$(DatabaseName)]
ADD FILE
(
    NAME = [USER_File1],
    FILENAME = '$(DefaultDataPath)$(DefaultFilePrefix)_USER_File1.ndf',
    SIZE = 1GB,
    FILEGROWTH = 128MB
)
TO FILEGROUP [USER];

ファイル2:

ALTER DATABASE [$(DatabaseName)]
ADD FILE
(
    NAME = [USER_File2],
    FILENAME = '$(DefaultDataPath)$(DefaultFilePrefix)_USER_File2.ndf',
    SIZE = 1GB,
    FILEGROWTH = 128MB
)
TO FILEGROUP [USER]
2