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

Microsoft SQL Serverのすべてのバージョン(MySQL以外)。sql-server-2016のようなバージョン固有のタグも追加してください。これは、質問に関連することが多いためです。

1
動的ポートはいつ「動的」ですか?
今日Dynamic Ports、同僚の1人と話し合っていましたが、彼らがどのように機能するかを明確にするのに役立つ情報があります。 最初の質問:場合IPALL TCP Dynmaic Portsの設定は、特定の番号は(1971と言う)あなたは1971年の静的ポートまたは現在1971であり、将来のある時点で変更される可能性があり、ダイナミックポートを持っているということを意味しています。 2番目の質問:これは私が最も興味を持っているものです。IPALL TCP Dynmaic Ports数十回のインスタンスの再起動を通じて、数年間同じポート(設定の値)を持つインスタンスがあります。インスタンスの再起動後に動的ポートが実際に変更される原因は何ですか?

6
ログファイルを圧縮してもサイズは小さくなりません
350 MBのデータファイル(.mdf)と4.9 GBのログファイル(.ldf)を持つデータベースがあります。復旧モデルはに設定されFULLます。 ログファイルを圧縮しようとしても、圧縮されません。 データベースの縮小は良くないことを知っています。しかし、私はまだログファイルを縮小するためにそれをやろうとしています。 走ったとき DBCC SQLPerf(logspace) ログサイズは4932 MBで、使用されるログ領域は98.76%であることがわかりました。 それから私はこのコマンドを試しました USE <databasename>; DBCC loginfo; 現在、ほとんどすべてのVLFは「ステータス2」であり、すべてが使用中であることを意味します。 ログのバックアップを取り、ログファイルを圧縮しようとしました。縮小してもサイズは小さくなりませんでした。 復旧モデルをに変更し、SIMPLE再度縮小しようとしましたが、これも役に立ちませんでした。 未処理のトランザクションを確認しました DBCC opentran (database); 現在開いているトランザクションがないことがわかりました。 ログファイルの縮小を妨げているのは何ですか?どうすれば解決できますか?

2
1つのストアドプロシージャから3つのストアドプロシージャが開始されたときにロールバックする方法
内部で3つのストアドプロシージャのみを実行するストアドプロシージャがあります。マスターSPが成功した場合、1つのパラメーターのみを使用して保存します。 マスターストアドプロシージャで最初のストアドプロシージャが正常に機能するが、2番目のストアドプロシージャが失敗した場合、マスターSPのすべてのSPが自動的にロールバックされますか、それともコマンドを実行する必要がありますか? 私の手順は次のとおりです。 CREATE PROCEDURE [dbo].[spSavesomename] -- Add the parameters for the stored procedure here @successful bit = null output AS BEGIN begin transaction createSavebillinginvoice begin Try -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; BEGIN EXEC [dbo].[spNewBilling1] END …

1
SQL Server Management StudioでIntelliSenseキャッシュを強制的に更新するにはどうすればよいですか?
SSMSのIntelliSenseは、シャットダウンして再起動しない限り更新されません。SSMSセッションがアクティブなときにサーバーから切断して再接続しようとしましたが、機能しません。 再作成する手順: テーブルを作成する そのテーブルから何かを選択します SSMSの下に波線の赤い線が表示され、「無効なオブジェクト名」というヒントが表示されます クエリを実行する SSMSを再起動せずにIntelliSenseを強制的に更新するにはどうすればよいですか?

1
ユーザーにSQL Server SHOWPLAN権限を付与することにリスクはありますか?
この質問は、データベース管理者のStack Exchangeで回答できるため、Stack Overflowから移行されました。 7年前に移行され ました。 私は大規模なSQL Server 2008データベースでパフォーマンスチューニングを行っていますが、ITグループはSHOWPLAN権限を与えたくありません。これまで、「実行計画の表示」は、個々のクエリとプロシージャのパフォーマンスを理解する最も効果的な方法でした。 この許可を与えることにはどのようなリスクが伴いますか?データベースの開発コピーに対するこの制限の正当な正当性はありますか? 注:このSQL ITグループには、単一のSQL Serverインスタンスの下に200以上のデータベースがあります。ありがとう。 回答:以下に示すものを除き、重大なセキュリティリスクがないことを意味するように、応答がないと考えています。基本的に、開発データベースでこれを制限すると逆効果になります。 誰かがより良い答えを思いついた場合、私はこれを更新します。コメントしてくれてありがとう!

8
ユーザーのログインに失敗しました-エラー18456-重大度14、状態38
SQL Serverログファイルビューアーに表示されるメッセージ: Login failed for user [User] Error: 18456, Severity: 14, State 38 実際の意味: Failed to open the explicitly specified database 私の質問: 重大度と状態の組み合わせごとに、18456エラー(ログイン失敗)のすべてのバリエーションのリストが役立つ説明テキストとともにありますか? Googleを使用しましたが、特定の組み合わせ以外は見つかりません。

3
すべてのクエリで(nolock)ヒントを使用しないで正当化する
クエリヒントを使用しないことを正当化する必要がありましたか? WITH (NOLOCK)非常に忙しいサーバーにヒットするすべてのクエリで見ています。開発者は、コードで何千回もそれを見るのが嫌いなので、デフォルトでオンにするだけだと思っているのです。 ダーティリードが許可され、最終的に不良データが発生することを説明しようとしましたが、パフォーマンスのトレードオフはそれだけの価値があると考えています。(それらのデータベースは混乱しています。パフォーマンスの問題があるのも不思議ではありません。) このNOLOCKヒントの悪用に対するケースを提示する方法の明確な例があれば、それはありがたいです。

3
SQL Serverは回復中のデータベースを表示します
この質問は、データベース管理者のStack Exchangeで回答できるため、Stack Overflowから移行されました。 7年前に移行され ました。 今日、停電後、1つのデータベース(リカバリ:フル)がSSMSで「リカバリ中」と表示されます。そう: myDatabase(リカバリ中)(データベースステータス:リカバリ、シャットダウン) 終了後、データベースの「回復プロセス」には、「(回復中)」のないmyDatabaseという名前が表示されます。問題は解決したと思ったが、そうではなかった。 そのデータベースを使用するアプリケーションを起動すると、データベース名の横に「(回復中)」という余分なテキストが再び表示されます。 「回復プロセス」が終了するまで待ってから、データベースをオフラインにし、オンラインに戻しました。 サーバーを再起動し、コンピューターを再起動し、アプリケーションが実行されていたときに余分なテキストが再び表示されます。SQL Serverログに、「データベース 'myDatabase'を起動しています」というメッセージが数回表示されます。データを挿入できるのでデータベースは機能しているようですが、状態は何かが起こっていることを示しています。 サーバーログには興味深いものは何も表示されません。唯一の異常なことは、「データベース 'myDatabase'を起動しています」というエントリが30個あることです。 サーバーが起動すると、すべてのデータベースが使用可能な状態になる前に回復することを知っています。しかし、私の場合、データベースはオンラインになり、「myDatabase(In recovery)」と表示されます。アプリケーションを閉じると、データベースはStatus:Normalになります。これは私を夢中にさせます。 SQL Serverの新しいインスタンスをインストールし、その上に古いデータベース「myDatabase」を配置しました。問題は引き続き発生します。 このクエリを実行すると: SELECT databasepropertyex('nyDatabase', 'STATUS') 回復中、オンライン、疑わしい、オンラインに戻った後、回復などが表示されます。


5
新しいスナップショットを生成せずに記事をトランザクションパブリケーションに追加する
プルサブスクライバーでSQL 2008 R2トランザクションレプリケーションを使用して、記事を追加するときに、スナップショット全体を作成する必要がないようにしたいと思います(dbは最大80 GBであるため、これには数時間かかります)。 この記事から、immediate_syncをオフに設定することで部分スナップショットでこれを行う方法を見てきましたが、それはうまくいきませんでした。 理想的には、dbスクリプトの一部としてこれを実行してテーブルを作成したいので、複製する場合は次のようにします。 Create Table ... sp_addArticle ... sp_PushThisToOurSubscribersNow

1
0が空の文字列と等しいのはなぜですか?
次のT-SQLステートメントが返される理由1(true)を見つけるには、助けが必要です。 SELECT IIF( 0 = '', 1, 0) 誰かが動作の原因となっているANSIオプションなどを変更したと思いますSET ANSI_NULLS。 私の問題は、いくつかの値を結合していることです。最終行セットには、結合される値0と''値がありますが、これは正しくありません。

4
Microsoft SQL Serverをホストしているマシンを安全に再起動するには、どのような手順が必要ですか?
MS SQL Serverインスタンスをホストしているサーバーを再起動するときにデータの破損を防ぐために必要な特別な手順はありますか? たとえば、最近、SQLサービスを手動で停止するという推奨事項に出会いました。私の理解では、これはWindows shutdownプロセスによって処理されます。 先ほど述べたように、個人が推奨する無数のステップがあると確信していますが、時代遅れのまたは迷信的な慣行を繰り返したくないのです。マイクロソフトからの推奨事項、または広範な業界標準はありますか? この質問は、マシンを再起動する短期的な手順に関連しています。マシンを永久に停止する前に、マシンが使用されていないことを確認する長期的な手順に関して別の質問があります。

7
特定の役割のすべての権限をリストしますか?
この質問は、データベース管理者のStack Exchangeで回答できるため、Stack Overflowから移行されました。 6年前に移行され ました。 私はあちこち検索してみましたが、この質問に対する決定的な答えは見つかりませんでした。 関連する役割にすべてのアクセス許可を付与できるスクリプトが必要です。 何か考え、またはそれも可能ですか? これは私を閉じます-しかし、私はそれをひっくり返して、ユーザーではなく役割の要約を与えることができないようです。 http://consultingblogs.emc.com/jamiethomson/archive/2007/02/09/SQL-Server-2005_3A00_-View-all-permissions--_2800_2_2900_.aspx WITH perms_cte as ( select USER_NAME(p.grantee_principal_id) AS principal_name, dp.principal_id, dp.type_desc AS principal_type_desc, p.class_desc, OBJECT_NAME(p.major_id) AS object_name, p.permission_name, p.state_desc AS permission_state_desc from sys.database_permissions p inner JOIN sys.database_principals dp on p.grantee_principal_id = dp.principal_id ) --role members SELECT rm.member_principal_name, rm.principal_type_desc, p.class_desc, p.object_name, p.permission_name, …


2
ON句の位置は実際にはどういう意味ですか?
通常のJOIN ... ON ...構文はよく知られています。ただし、対応するON句とは別に句を配置することもできJOINます。これは、実際にはめったに見られないものであり、チュートリアルにはありません。また、これが可能であると言及しているWebリソースも見つかりませんでした。 ここで遊ぶスクリプトは次のとおりです。 SELECT * INTO #widgets1 FROM (VALUES (1), (2), (3)) x(WidgetID) SELECT * INTO #widgets2 FROM (VALUES (1, 'SomeValue1'), (2, 'SomeValue2'), (3, 'SomeValue3')) x(WidgetID, SomeValue) SELECT * INTO #widgetProperties FROM (VALUES (1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')) x(WidgetID, PropertyName) --q1 SELECT w1.WidgetID, w2.SomeValue, wp.PropertyName …
23 sql-server  t-sql 

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