dboスキーマ名を強制する方法は?
-
11-07-2019 - |
質問
" SQL SERVER PROJECT"を使用していますVS 2008でC#でUDFを作成する 次に、DEPLOYコマンドを使用してDLLをMS SQL Server 2005に公開しています
作成されたすべてのUDFが自分(ユーザーとして)によって所有されていることを除いて、すべて正常に動作します。 しかし、私はdboスキーマを保持したかった(例:jonny.UDF_TESTではなくdbo.UDF_TEST)
タールの管理方法はありますか?
解決 2
VS内ですべてを実行できる別のアプローチを見つけました。
" postdeployscript.sql"という名前のプロジェクトSQLスクリプトに追加しました:
DECLARE @SQL NVARCHAR(200)
SET @SQL = 'alter schema dbo transfer' + CURRENT_USER + '。[UDF_GET_AUDIT_VALUE]'
EXECUTE(@SQL)
GO
スクリプトは、脱退プロセス中にVSによって自動的に実行され、スキーマを現在のユーザーからDBOに変更します。
短所:手動で停止する各UDF / USPを追加する必要があります
PS:predeployscript.sqlを使用して、展開前にいくつかのコマンドを実行することもできます
他のヒント
sysadminまたはデータベースのdboであるアカウントからUDFを展開します。 dllをビルドしてから、データベースにdboとして管理スタジオにログインし、これらのコマンドを実行することにより、手動で展開できます。
アセンブリのジオコードの作成元
'C:\ PATH \ YourUDF.dll' WITH
PERMISSION_SET = SAFE
または
- のVisual Studio内から ソリューションエクスプローラーUDFをクリックします プロジェクト(ソリューションではありません)。
- プロパティに移動します。
- データベースタブをクリックします。
- 接続を変更できます 文字列、およびアセンブリも変更します ここに所有者。