1. ホーム
  2. sql

[解決済み] SQL Server の SYSNAME データ型とは何ですか?

2022-02-18 19:01:12

質問内容

SQL Server の SYSNAME データ型は何のためにあるのですか? ボル は言う。

sysnameデータ型は、次のように使用されます。 テーブルの列、変数、ストアド オブジェクトを格納するプロシージャのパラメータ という名前になります。

が、それがよくわからない。何かユースケースはありますか?

どのように解決するのですか?

sysname は、Unicode128文字に制限された組み込みのデータ型で、IRCでは、主にスクリプトを作成する際にオブジェクト名を格納するために使用されます。その値は NULL

を使用するのと基本的に同じです。 nvarchar(128) NOT NULL

EDIT

コメントで @Jim が述べているように、ビジネスケースとして sysname というのが正直なところです。 主にマイクロソフトが社内で構築する際に使用する sys SQL Server内のテーブルやストアドプロシージャなど。

例えば Exec sp_help 'sys.tables' というカラムがあることがわかると思います。 name は次のように定義されます。 sysname これは、thisの値が実際にはそれ自体でオブジェクト(テーブル)であるためです。

あまり気にすることはないでしょう。

また、SQL Server 6.5以下をまだ使っている人(まだ使っている人がいるのだろうか)のために、ビルトインのタイプである sysname と同等です。 varchar(30)

ドキュメンテーション

sysname のドキュメントと一緒に定義されています。 ncharnvarchar を、備考欄に記入してください。

システム名 は、システムが提供するユーザー定義データ型であり、機能的には nvarchar(128) ただし、Null 値を許容しない。 システム名 は、データベース・オブジェクト名を参照するために使用されます。

上記の指摘を明確にするために デフォルト シスネーム は次のように定義されます。 NOT NULL の場合、Nullableとして定義することは確かに可能です。また、SQL Server のインスタンスによって、正確な定義が異なる可能性があることにも注意が必要です。

特殊なデータ型の使用

sysname データ型は、テーブルの列、変数、ストアドに使用されます。 オブジェクト名を格納するプロシージャのパラメータです。の正確な定義は以下の通りです。 システム名 は識別子の規則と関係がある。そのため は、SQL Server のインスタンス間で異なる。 シスネーム は機能的に同じ として nvarchar(128) ただし、デフォルトでは システム名 はNULLではありません。この場合 SQL Server の以前のバージョンでは sysname は、varchar(30)と定義されています。

について、さらにいくつかの情報を提供します。 sysname を許可または不許可にする NULL の値は、ここで確認できます。 https://stackoverflow.com/a/52290792/300863

デフォルト(NOT NULLであること)だからといって、そうなることを保証するものではありません!