SQL ServerのSYSNAMEデータ型は何ですか?BOLは言う:
sysnameデータ型は、オブジェクト名を格納するテーブル列、変数、およびストアドプロシージャパラメータに使用されます。
しかし、私はそれを本当に理解していません。提供できるユースケースはありますか?
sysname
は128Unicode文字に制限された組み込みデータ型であり、IIRCは、主にスクリプトの作成時にオブジェクト名を格納するために使用されます。その値はできませんNULL
基本的に使用するのと同じです nvarchar(128) NOT NULL
編集
@Jimがコメントで述べたように、正直に言うと、実際にはビジネスケースはないと思いますsysname
。これは主に、SQLServer内で内部sys
テーブルやストアドプロシージャなどを構築するときにMicrosoftによって使用されます。
たとえば、実行Exec sp_help 'sys.tables'
すると、列name
が次のように定義されていることがわかります。sysname
これは、この値が実際にはそれ自体のオブジェクト(テーブル)であるためです。
心配しすぎです。
また、SQL Server 6.5以下をまだ使用している人(まだ使用している人はいますか?)の場合、組み込みタイプはsysname
と同等であることに注意してください。varchar(30)
ドキュメンテーション
sysname
は、備考セクションのnchar
およびnvarchar
のドキュメントで定義されています。
sysnameは、システムが提供するユーザー定義のデータ型であり、null許容でないことを除いて、nvarchar(128)と機能的に同等です。sysnameは、データベースオブジェクト名を参照するために使用されます。
上記の注意を明確にするために、デフォルトでは sysnameが定義されNOT NULL
ています。これは、null許容として定義することが確かに可能であるためです。正確な定義はSQLServerのインスタンス間で異なる可能性があることに注意することも重要です。
システム名のデータ・タイプは、表の列、変数、およびストアドプロシージャのパラメータストアオブジェクト名そのために使用されます。sysnameの正確な定義は、識別子の規則に関連しています。したがって、SQLServerのインスタンス間で異なる可能性があります。sysnameは、デフォルトでsysnameがNULLでないことを除いて、機能的にはnvarchar(128)と同じです。以前のバージョンのSQLServerでは、sysnameはvarchar(30)として定義されていました。
値のsysname
許可または禁止に関する詳細については、https://stackoverflow.com/a/52290792/300863をご覧ください。NULL
これがデフォルトである(NOT NULLである)からといって、それがデフォルトになることを保証するものではありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加