タグ付けされた質問 「sql-server-2012」

SQL Server 2012(メジャービルドバージョン11.00.xxxx)。sql-serverにもタグを付けてください。

2
スキーマのすべての権限をスクリプト化する方法
SQL管理スタジオでは、すべてのdbオブジェクトのスクリプトを作成できますが、これまでのところ、スキーマまたはユーザーを正しくスクリプト化する方法を見つけることができませんでした。スキーマに対するユーザーの権限は、作成されるスクリプトには含まれません。私は何か間違ったことをしたのでしょうか、それともMSFTは少しずさんなのですか?


2
SQL Server 2012を2008 R2が既にインストールされているマシンにインストールできますか?
私はかなり前からSQL Server 2008 R2を使用していますが、うまく機能しています。SQL Server 2012を使用する必要があります。これは既存のデータベースに影響しますか?SQL Server 2008 R2が実行されているマシンにSQL Server 2012をインストールする場合、どの程度のリスクが伴いますか?

2
データベースダイアグラムを表示するために必要な権限
最近、開発者が使用できるようにSSDTを設定しました。開発者データベースへの変更は、サーバー(db_datareader、db_datawriter)に接続したときに各開発者が持つ権限を制限することにより、SSDTを介して行われます。SSDT内では、昇格されたアクセス許可を持つログオンを使用して接続する展開スクリプトを使用して、データベースへの変更を公開します。 私の質問。データベースをロックダウンするために(スキーマのドリフトを停止するために)この長さになっていることを考えると、開発者がdb_owner権限なしでこのデータベースの図を表示できる方法はありますか?各開発者が自分の図を作成して表示できることは知っていますが、多くの異なる開発者が作成したすべての図を表示できるようにしたいと思っています。 これは役に立たないと思いますが、SQL Server 2012を実行しています どんな助けも大いに受けられます。

2
SSRS(SQL Server 2012)を構成して、SharePointと同じサーバーを別のインスタンスで実行する方法
Windows 2008R2で実行されているSQL Server 2012のインスタンスと、SharePointを実行しているSQL Server 2012の別のインスタンス(SharePoint 2010だと思います)があります。 私がアクセスしようとすると、http://localhost/Reports_<InstanceName>私は得ています: 証明書の警告(私は続行します-私はこれについて本当に気にしません-その開発マシンです) 次のテキスト: Cannot connect to the configuration database. Googleは、そのエラーメッセージはSharePoint関連であると言っているので、SharePointがSSRSリクエストをハイジャックしていると思いがちです。 レポートサーバーにアクセスできるようにするために、SSRSまたは他の何か(IISか??)に対して行うことができる構成はありますか? 注:SSMS経由でReporting Servicesに問題なく接続できます。

2
SQL Server AFTER INSERTトリガー
列のテキストmarriedで挿入が行われた後にこのトリガーを発生させたいmarital_status、これが今のところ ALTER TRIGGER [dbo].[marriage] ON [dbo].[applicant_personal_info] AFTER INSERT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; IF (SELECT [marital_status] FROM inserted) = 'married' BEGIN INSERT INTO [dbo].[applicant_marriage_info]([dom]) VALUES('abc') END END

2
ログ配布-スタンバイを使用した復元-SQL Server 2012で壊れ続ける
RESTORE WITH STANDBYレポート目的でデータベースを読み取り専用モードで復元するために、ログ配布とSQL Server 2012を使用しています。ただし、ログ配布の設定は、1つまたは2つのログバックアップの復元が完了した後も壊れ続けます。ログ配布は、それがとして実行されている場合にのみ機能しRESTORE WITH STANDBYます。RESTORE WITH NORECOVERY問題はありません。 これに関する私の唯一の直感は、プライマリデータベースはそれほど動的ではないということです。したがって、トランザクションがない場合、これはRESTOREプロセスに問題を引き起こす可能性がありますか? アイデア、既知の修正? 2つのテーブルを頻繁に更新する定期的なジョブを実行することで、数日間は機能していました。ジョブがログ配布セットアップの実行を停止するとすぐに失敗し、.trnファイルを処理できませんでした。私はログ配布をリセットし、小さな更新を行って実行が継続するかどうかを確認しようとしました。テーブルの1つのレコードの1つの列の値を、失敗した場合でも変更しました。 ご回答いただきありがとうございます。 PS:ログからの抜粋 2013年2月25日13:00:00、LSRestore_DBDB01-A_BulldogDB、In Progress、1、DBREPORTS、LSRestore_DBDB01-A_BulldogDB、Log shipping restore log job step。,, 2013-02-25 13:00:12.31 ***エラー:ログバックアップファイル '\\ dbsan01 \ DBBackups \ LSBackup_BulldogDB \ BulldogDB_20130225180000.trn'をセカンダリデータベース 'BulldogDB'に適用できませんでした。(Microsoft.SqlServer.Management.LogShipping)*** 2013-02-25 13:00:12.31 ***エラー:データベース 'BulldogDB'のログの処理中にエラーが発生しました。可能であれば、バックアップから復元します。バックアップが利用できない場合は、ログを再構築する必要があるかもしれません。 リカバリ中にエラーが発生し、データベース 'BulldogDB'(8:0)を再起動できませんでした。回復エラーを診断して修正するか、既知の正常なバックアップから復元します。エラーが修正されない、または予期されない場合は、テクニカルサポートに連絡してください。 RESTORE LOGが異常終了しています。 ファイル1のデータベース「BulldogDB」ファイル「BulldogDB」の0ページを処理しました ファイル1でデータベース「BulldogDB」ファイル「BulldogDB_log」の1ページを処理しました(.Net SqlClientデータプロバイダー)*** 2013-02-25 13:00:12.32 ***エラー:履歴/エラーメッセージをログに記録できませんでした(Microsoft.SqlServer.Management.LogShipping)*** 2013-02-25 13:00:12.32 ***エラー:ExecuteNonQueryには、開いて利用可能な接続が必要です。接続の現在の状態は閉じています。(System.Data)*** …

1
同じ行からの複数選択に対して、Union Allよりも優れたオプションはありますか?
スキーマの例: CREATE TABLE [dbo].[Base]( [ID] [int] IDENTITY(1,1) NOT NULL, [Option1ID] [int] NULL, [Option2ID] [int] NULL, [Option3ID] [int] NULL, [Option1Name] [varchar] NULL, [Option2Name] [varchar] NULL, [Option3Name] [varchar] NULL, [Option1LName] [varchar] NULL, [Option2LName] [varchar] NULL, [Option3LName] [varchar] NULL,) 次のように表示される結果を取得する方法はありますか? ID | OptionID | OptionName | OptionLName 私はUNION ALLを使用してこれを達成しようとしましたが、これは私の例では同じ行を3回処理することを意味し、実際の問題では10回実行する必要があります。レガシーコードのため、テーブルを正規化できません。ベース行を一度だけ超える方法はありますか?

3
変更データキャプチャ-誰が変更を行ったかを知る方法は?
CDCが特定した変更を誰が行ったかを追跡します。 私の日時ハックの行に沿って、cdc変更追跡テーブルのデフォルト値を持つ新しいフィールドとしてsuser_snameを追加することにより、同じアプローチを試しました。しかし、これは、cdcプロセスの所有者を返すようであり、ベーステーブルで変更を開始したユーザーを返しません。私もoriginal_loginを試しましたが、sqlサービスアカウントのログインが返されます。繰り返しますが、おそらく変更を開始したユーザーではなく、cdcプロセスに関連付けられています。 私はスタックオーバーフローで同様の質問を見つけましたが、フロントエンドからの変更を追跡するか、トリガーを介する以外に回答はありませんでした。これは、cdcを使用する目的に反するようです。私は再投稿しませんが、元のものがスタックオーバーフローにあったので、特にR2または2012がより良い方法を導入している場合は、ここで試してみようと思いました。 つまり、要するに、変更データキャプチャで誰が変更を行ったかを知るにはどうすればよいのでしょうか。

1
階層に関係なくMDX Query for RANK
グルーパーを事前に指定せずに、SSASキューブ(SSAS 2012)に計算を追加して、そのグルーパーの他のすべてのメンバーに対する現在のメンバーの相対ランクを表示したいと考えています。 たとえば、Efficiency$$ /時間として定義されている計算がすでにあるとします。 Efficiency Rank現在のメンバーが設定されている中での現在のメンバーの相対的な位置を教えてくれる計算も追加したいと思います。 私が試した構文は RANK([Measures].[Efficiency].CurrentMember, [Measures].[Efficiency]) 私が気づくのは間違っています。 これに関するガイドをどこにも見つけることができないようで、比較的一般的なビジネス要件であると思われるため、確立されたベストプラクティスまたはパターンがあることを願っています。

3
SQL ServerおよびNUMAのRAMを構成する
偶発的なDB管理者はこちら。 質問: そのサーバーの唯一の目的がSQL Serverデータベースエンジンのみを提供することである場合でも、SQL Serverの最大RAMを手動で制限しますか? 32GB RAMを搭載したMicrosoft Windows 2012 R2 Server、SQL Server 2012 Stdを使用しています。 管理者は常にSQL Serverにログインして、そのコンソールとすべてを使用します。 次に、このWindowsサーバーでNUMAが有効になっているかどうかをどのように確認しますか?

2
クラスタ化インデックスが使用されている場合、「行外」フィールドは読み取られますか?
VARCHAR(MAX)/NVARCHAR(MAX)列を使用するとデータが格納されることを知っています。out of the rowデータ行には、「大きな値」が格納されている別の場所へのポインターがあります。 次の質問があります。 各フィールドは格納されout of the rowていmaxますか、それとも1つだけですか? clustered indexレコード全体を読み取るためにテーブルのを使用している場合、行から格納されているフィールドも読み取られますか? VARCHAR(MAX)またはNVARCHAR(MAX)は「大きな値の型」と見なされます。大きな値型は通常「行外」に格納されます。つまり...

1
SQL Server 2012:Security_error_ring_buffer_recorded:ImpersonateSecurityContext
私が管理しているいくつかのサーバーが、system_health XEセッションで多くのイベントを記録しています。 名前:security_error_ring_buffer_recorded api_name:ImpersonateSecurityContext calling_api_name:NLShimImpersonate error_code:5023 error_code 5023は(システムエラーコード)である必要があります。 ERROR_INVALID_STATE 5023 (0x139F) The group or resource is not in the correct state to perform the requested operation. イベントセキュリティログにもSQL Serverログにもログイン失敗イベントはありません。


1
ゴーストクリーンアップの設定
高トランザクションデータベースを実行しています(平均で17.5万トランザクション/分、1時間あたり約900万レコードが追加および削除されます)。 750万件のレコードが追加および削除されたため、最近までこれはそれほど問題ではありませんでしたが、最新の大量のデータにより、ゴーストクリーンアップはクリーンアップに追いつくことができないようです。テーブル/インデックスの未使用スペース。 数日前に、16テーブル(主に2つ)全体で53 GBの「未使用スペース」に達したため、ゴーストクリーンアッププロセスの調査が始まり、5秒ごとに実行され、10ページ以上実行されることがわかりました。 私の現在の解決策は、早朝、次のコマンドの3つのスレッドを実行していることです。 DECLARE @2hours datetime = dateadd(hour,2,getutcdate()) WHILE getutcdate() < @2hours BEGIN DBCC FORCEGHOSTCLEANUP ('DBNAME') WITH NO_INFOMSGS END 前日の夜のバックログに追いつくため(ほとんどの削除が行われるとき) デフォルトの設定を5秒と10ページから毎秒と言って変更したり、20ページを超えるようにしたりする方法はあるのでしょうか。それを行う方法はありますか。それとも、複数のクリーンアップ手順をスピンアップして、データ、またはこれを支援できる他のアクションがある場合 インデックスの再作成は、影響を受けるほとんどのインデックスに対して少なくとも週1回実行されます(ほとんどは隔日です) AlwaysOn高可用性クラスター上のSQL Server 2012 Enterprise SP3_CU8(明日はCU9にアップグレード)もレプリケーション(別のサーバーに配布)あり

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.