SQL Server インタビューの質問と回答トップ 50 (2025)

ここでは、夢の仕事に就くための、新人および経験豊富な候補者向けの SQL Server 面接の質問と回答を紹介します。

SQL Server 面接の新人向けの質問と回答


1. SQL Server の XNUMX つの認証モードとは何ですか?

XNUMX つの認証モードがあります –

  • Windows モード
  • ミックスモード

モードは、SQL Server 構成プロパティのツール メニューを選択し、セキュリティ ページを選択することで変更できます。

👉 無料 PDF ダウンロード: SQL Server インタビューの質問と回答


2. SQL プロファイラとは何ですか?

SQL プロファイラーは、システム管理者が SQL サーバー内のイベントを監視できるようにするツールです。 これは主に、分析のためにファイルまたはテーブルの各イベントに関するデータをキャプチャして保存するために使用されます。


3. 再帰ストアド プロシージャとは何ですか?

SQL Server は、それ自体を呼び出す再帰ストアド プロシージャをサポートしています。 再帰ストアド プロシージャは、解決策が繰り返し到達される問題解決方法として定義できます。 最大 32 レベルまでネストできます。

CREATE PROCEDURE [dbo].[Fact]
(
@Number Integer,
@RetVal Integer OUTPUT
)
AS
DECLARE @In Integer
DECLARE @Out Integer
IF @Number != 1
BEGIN
SELECT @In = @Number – 1
EXEC Fact @In, @Out OUTPUT - Same stored procedure has been called again(Recursively)
SELECT @RetVal = @Number * @Out
END
ELSE
BEGIN
SELECT @RetVal = 1
END
RETURN
GO

4. ローカル一時テーブルとグローバル一時テーブルの違いは何ですか?

  • ローカル一時テーブルは、接続があるときに表示され、接続が閉じると削除されます。
CREATE TABLE #<tablename>
  • グローバル一時テーブルはすべてのユーザーに表示され、それを作成した接続が閉じられると削除されます。
CREATE TABLE ##<tablename>

5. CHECK制約とは何ですか?

CHECK 制約をテーブル内の列に適用して、列に配置できる値を制限できます。 チェック制約は整合性を強制するものです。


6. SQL サーバーを他のサーバーにリンクできますか?

SQLサーバー リンクを提供する OLE-DB プロバイダーを持つ任意のデータベースに接続できます。例: Oracle SQL サーバー グループに接続するためのリンクを持つ OLE-DB プロバイダーがあります。


7. サブクエリとそのプロパティとは何ですか?

サブクエリは、Select、Update、Insert、または Delete ステートメントなどのメイン クエリ内にネストできるクエリです。 これは、表現が許可されている場合に使用できます。 サブクエリのプロパティは次のように定義できます。

  • サブクエリには order by 句を含めないでください
  • サブクエリはメインクエリの比較演算子の右側に配置する必要があります。
  • サブクエリはメインクエリの前に最初に実行する必要があるため、括弧で囲む必要があります。
  • 複数のサブクエリを含めることができます

8. サブクエリにはどのような種類がありますか?

サブクエリには XNUMX つのタイプがあります。

  • XNUMX 行のみを返す単一行サブクエリ
  • 複数行を返す複数行サブクエリ
  • 複数の列をメインクエリに返す複数列のサブクエリ。 そのサブクエリの結果を使用して、メインクエリが実行されます。

9. SQL サーバー エージェントとは何ですか?

SQL Server エージェントは、SQL Server 管理者 (DBA) の日常業務において重要な役割を果たします。 サーバー エージェントの目的は、スケジューラ エンジンを使用してタスクを簡単に実装し、スケジュールされた日時にジョブを実行できるようにすることです。


10. SQL Server のスケジュールされたタスクとは何ですか?

スケジュールされたタスクまたはジョブは、定期的な間隔でスケジュールされた時間に実行できるプロセスを自動化するために使用されます。 このタスクのスケジュール設定により、夜間の人間の介入を減らすことができ、特定の時間に給餌を行うことができます。 ユーザーは、タスクを生成する必要があるタスクを注文することもできます。


11. SQL Server の COALESCE とは何ですか?

COALESCE は、引数内の最初の非 null 式を返すために使用されます。 この関数は、引数内の複数の列から null 以外を返すために使用されます。

例–

Select COALESCE(empno, empname, salary) from employee;

12. SQL Server プログラミングで例外をどのように処理できますか?

例外は TRY—-CATCH 構造を使用して処理され、TRY ブロック内にスクリプトを記述し、CATCH ブロック内でエラー処理を行うことによって処理されます。


13. FLOOR 関数の目的は何ですか?

FLOOR 関数は、整数以外の値を前の最小の整数に切り上げるために使用されます。 例が示されています

FLOOR(6.7)

6を返します。


14. データベースのロックを確認できますか? もしそうなら、このロックチェックはどのように行うことができますか?

はい、データベース内のロックを確認できます。 これは、sp_lock と呼ばれる組み込みストアド プロシージャを使用して実現できます。


15. SIGN関数の用途は何ですか?

SIGN 関数は、指定された数値が正、負、ゼロのいずれであるかを判断するために使用されます。 これは +1、-1、または 0 を返します。

例–

SIGN(-35) returns -1

16. トリガーとは何ですか?

トリガーは、テーブルに対して挿入、更新、または削除コマンドが実行されたときに、SQL コードのバッチを実行するために使用されます。トリガーは、データが変更されたときに自動的にトリガーまたは実行されます。挿入、削除、および更新操作で自動的に実行できます。


17. トリガーの種類は何ですか?

トリガーには次の XNUMX 種類があります。

  • インセット
  • 削除
  • 更新
  • の代わりに

18. INSERT ステートメントの IDENTITY 列とは何ですか?

IDENTITY 列はテーブル列で使用され、その列を自動増分番号または代理キーとして作成します。


19. SQL の一括コピーとは何ですか?

Bulkcopy は、テーブルから大量のデータをコピーするために使用されるツールです。 このツールは、SQL Server に大量のデータを読み込むために使用されます。


20. データベース内のトリガーのリストを取得するために使用されるクエリは何ですか?

データベース内のトリガーのリストを取得するためのクエリ -

Select * from sys.objects where type='tr'

21.UNIONとUNIONALLの違いは何ですか?

  • UNION: XNUMX つのテーブルから関連する情報を選択するには、UNION コマンドを使用します。 JOINコマンドと似ています。
  • UNION All: UNION ALL コマンドは、UNION ALL がすべての値を選択する点を除けば、UNION コマンドと同じです。 重複行は削除されず、代わりにすべてのテーブルからすべての行が取得されます。

22. グローバル一時テーブルはどのように表され、その範囲はどのように表されますか?

グローバル一時テーブルは、テーブル名の前に ## を付けて表されます。 スコープはセッションの外側になりますが、ローカル一時テーブルはセッションの内側になります。 セッション ID は @@SPID を使用して見つけることができます。


経験者向けの SQL Server 面接の質問と回答

23. ストアド プロシージャと動的 SQL の違いは何ですか?

ストアド プロシージャは、コンパイルされた形式で保存される一連のステートメントです。 動的 SQL は、実行時に動的に構築される一連のステートメントであり、データベースには格納されず、実行時に単純に実行されます。


24. 照合とは何ですか?

照合順序は、テーブル内の並べ替え順序を指定するために定義されます。 並べ替え順序には XNUMX 種類あります。

  1. 大文字と小文字を区別
  2. 大文字小文字を区別しません
  3. バイナリ

25. テーブル内のレコード数を取得するにはどうすればよいですか?

以下はテーブル内のレコード数を取得するために使用できるクエリです。

Select * from <tablename> Select count(*) from <tablename> Select rows from sysindexes where id=OBJECT_ID(tablename) and indid<2

26. SQL Server のバージョンを取得するために使用されるコマンドは何ですか?

Select SERVERPROPERTY('productversion')

SQL Server のバージョンを取得するために使用されます。


27. UPDATE_STATISTICS コマンドとは何ですか?

UPDATE_STATISTICS コマンドは、インデックスで大量の削除や変更、または一括コピーが発生した場合に、テーブルのインデックスを更新するために使用されます。


28. SET NOCOUNT ON/OFF ステートメントの用途は何ですか?

デフォルトでは、NOCOUNT は OFF に設定されており、コマンドが実行されるたびに影響を受けたレコードの数を返します。 ユーザーが影響を受けるレコードの数を表示したくない場合は、明示的に ON- (SET NOCOUNT ON) に設定できます。


29. ストアド プロシージャ スクリプトを保持するためにどの SQL サーバー テーブルが使用されますか?

Sys.SQL_Modules は、ストアド プロシージャのスクリプトを格納するために使用される SQL Server テーブルです。 ストアド プロシージャの名前は、Sys.Procedures というテーブルに保存されます。


30. SQL Server のマジック テーブルとは何ですか?

挿入、削除、更新などの DML 操作中、SQL Server は DML 操作中の値を保持するためのマジック テーブルを作成します。これらのマジック テーブルは、データ トランザクションのトリガー内で使用されます。


31. SQL Server の SUBSTR と CHARINDEX の違いは何ですか?

SUBSTR 関数は、指定された文字列内の文字列の特定の部分を返すために使用されます。 ただし、CHARINDEX 関数は、指定された文字列内の文字の位置を返します。

SUBSTRING('Smiley',1,3)

Smiとして結果を出します

CHARINDEX('i', 'Smiley',1)

I が 3 に表示されるので、結果として 3 を返しますrd 弦の位置


32. ログインはどのように作成できますか?

次のコマンドを使用してログインを作成できます

CREATE LOGIN MyLogin WITH PASSWORD = '123';

33. ISNULL() 演算子とは何ですか?

ISNULL関数は、SQLサーバーで指定された値がNULLであるかどうかを確認するために使用されます。 この関数は、値を NULL に置き換えることもできます。


34. FOR句の用途は何ですか?

FOR句は主に以下の目的で使用されます。 XML そしてブラウザのオプション。 この句は主に、クエリ結果を XML 形式またはブラウザに表示するために使用されます。


35. テーブルごとのインデックスの最大数はいくつになりますか?

SQL Server 2008 の場合、テーブルあたりの最大数として 100 インデックスを使用できます。 1 ClusterSQL Server では、テーブルごとに 999 個のインデックスと XNUMX 個の非クラスター化インデックスを使用できます。

1000テーブルあたりの最大インデックス数は1です。 XNUMX ClusterSQL Server では、テーブルごとに 999 個のインデックスと XNUMX 個の非クラスター化インデックスを使用できます。

1 ClusterSQL Server では、テーブルごとに 999 個のインデックスと XNUMX 個の非クラスター化インデックスを使用できます。


36. COMMIT と ROLLBACK の違いは何ですか?

BEGIN と COMMIT の間のすべてのステートメントは、COMMIT が実行されるとデータベースに永続化されます。 BEGIN と ROOLBACK の間のすべてのステートメントは、ROLLBACK が実行されたときの状態に戻ります。


37. varchar 型と nvarchar 型の違いは何ですか?

Varchar と nvarchar は同じですが、唯一の違いは、nvarhcar を使用して複数の言語の Unicode 文字を格納できることと、varchar と比較した場合により多くのスペースを必要とすることです。


38. @@SPID の用途は何ですか?

@@SPID は、現在のユーザー プロセスのセッション ID を返します。


39. 実行時にストアド プロシージャを再コンパイルするために使用されるコマンドは何ですか?

ストアド プロシージャは、RECOMPILE というキーワードを使用して実行できます。

Exe <SPName>  WITH RECOMPILE

または、ストアド プロシージャ自体に WITHRECOMPILE を含めることもできます。


40. SQL Server で重複行を削除するにはどうすればよいですか?

重複行は、SQL Server の CTE および ROW NUMER 機能を使用して削除できます。


41. SQL Server のユーザー名とパスワードは SQL Server のどこに保存されますか?

ユーザー名とパスワードは sys.server_principals と sys.sql_logins に保存されます。 ただし、パスワードは通常のテキストでは保存されません。


42. GETDATE と SYSDATETIME の違いは何ですか?

どちらも同じですが、GETDATE はミリ秒までの時間を指定でき、SYSDATETIME はナノ秒までの精度を指定できます。 SYSDATE TIME は GETDATE よりも正確です。


43. あるテーブルから別のテーブルにデータをコピーするにはどうすればよいですか?

INSERT INTO SELECT

このコマンドは、すでに作成されているテーブルにデータを挿入するために使用されます。

SELECT INTO

このコマンドは新しいテーブルを作成するために使用され、その構造とデータは既存のテーブルからコピーできます。


44. TABLESAMPLEとは何ですか?

TABLESAMPLE は、アプリケーションに必要な行のサンプルをランダムに抽出するために使用されます。 取得されるサンプル行は、行の割合に基づいています。


45. ユーザー定義のエラー メッセージにはどのコマンドが使用されますか?

RAISEERROR は、特定のセッションのエラー処理を生成および開始するために使用されるコマンドです。 これらのユーザー定義メッセージは sys.messages テーブルに保存されます。


46. XML データ型とは何を意味しますか?

XML データ型は、XML ドキュメントを SQL Serverデータベース。 列と変数が作成され、XML インスタンスがデータベースに保存されます。


47. CDCとは何ですか?

CDC は Change Data Capture の略で、最近変更されたデータをキャプチャするために使用されます。 この機能は SQL Server 2008 にあります。


48. SQLインジェクションとは何ですか?

SQL インジェクションは、悪意のあるユーザーによる攻撃であり、解析および実行のために SQL サーバーのインスタンスに渡すことができる文字列に悪意のあるコードが挿入される可能性があります。 受け取ったすべての構文的に有効なクエリを実行するときに、すべてのステートメントで脆弱性をチェックする必要があります。

パラメータさえも、熟練した経験豊富な攻撃者によって操作される可能性があります。


49. SQL インジェクション攻撃から保護するために使用される方法は何ですか?

SQL インジェクション攻撃から保護するために使用される方法は次のとおりです。

  • ストアド プロシージャにパラメータを使用する
  • 入力パラメータのフィルタリング
  • 動的SQLでパラメータ収集を使用する
  • like 句内のユーザーエスケープ文字

50. フィルターされたインデックスとは何ですか?

フィルターされたインデックスは、テーブル内の行の一部をフィルターするために使用され、クエリのパフォーマンスとインデックスのメンテナンスを向上させ、インデックスのストレージ コストを削減します。 WHERE 句を使用してインデックスが作成された場合、それはフィルターされたインデックスと呼ばれます。

これらの面接の質問は、あなたの活力(口頭)にも役立ちます