SELECT INTO
テーブルを作成し、そのテーブルを操作すると、それは一種のvoidデータであるように見えます。この列にはnullしかありませんが、ポップアップに列がnullではないことが表示されます。
SQL Serverでvoid列タイプとはどういう意味ですか?見たことがなかったので。
SELECT INTO
ステートメント:
SELECT DISTINCT
Item,
NULL AS ItemDescription,
NULL AS Marca,
NULL AS Categoria,
NULL AS SubCategoria
INTO
setup.MaestroProductos
FROM
temp.datos
WHERE
Item NOT IN ('servicio', 'flete')
AND Categoria NOT IN ('servicios', 'activos', 'activo fijo')
ORDER BY
Item
NULL
テーブルにリテラルを挿入したようです。
以下のSQLをSSMSに入れると、それがNullColumn
インテリセンスによって「void」列として定義されていることに気付くでしょう(そして興味深いことに「notnull 」としても定義されています)。
USE Sandbox;
GO
SELECT NULL AS NullColumn,
1 AS IntColumn
INTO MyTable;
GO
SELECT NullColumn,
IntColumn
FROM dbo.MyTable;
GO
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'MyTable';
GO
DROP TABLE dbo.MyTable;
これは、同じセッション内で、SSMSがリテラルのデータ型NULL
(またはNullability)を導出できないためです。ただし、作成された列はnull許容型になりint
ます。
INTO
ステートメントまでSQLを実行し、新しい接続を作成してデータ型を確認すると(インテリセンスを更新した後)、null許容として表示されますint
。
OPのコメントに応答するには、「デザイナーでは列を整数型として定義し、画像のポップアップではvoid型として定義したためです。」この動作を再現することはできません。これは、データ型を定義しない場合にのみ実行できます。OPは本当に場合はされてタイプを定義し、その後、我々は問題を複製するために彼らのスクリプトが必要。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加