テーブル名に基づいて:フィルタ列データ型
: 表1Name DataType
PK_tablekey INT
FK_Table2Keu INT
CreateTime datetime
DateField1 datetime
DateField2 datetime
Createdby NVARCHAR(32)
Name1 NVARCHAR(32)
Flag BIT
Value1 Decimal(19,4)
Value2 Decimal(19,4)
私は句
DateField1 datetime
DateField2 datetime
Name1 NVARCHAR(32)
Flag BIT
Value1 Decimal(19,4)
Value2 Decimal(19,4)
クエリによってオーバー使用して、その外にのみ、これらのフィールドを照会したいです
SELECT
(ROW_NUMBER() OVER (ORDER BY ORDINAL_POSITION ASC)) AS ColumnNumber,
CAST(COLUMN_NAME AS NVARCHAR(150)) AS ColumnName
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = N'Table1'
AND DATA_TYPE IN (N'decimal')
UNION ALL
SELECT
(ROW_NUMBER() OVER (ORDER BY ORDINAL_POSITION ASC)) AS ColumnNumber,
CAST(COLUMN_NAME AS NVARCHAR(150)) AS ColumnName
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = N'Table1'
AND DATA_TYPE IN (N'nvarchar')
AND COLUMN_NAME = 'Name1 '
UNION ALL
SELECT
(ROW_NUMBER() OVER (ORDER BY ORDINAL_POSITION ASC)) AS ColumnNumber,
CAST(COLUMN_NAME AS datetime) AS ColumnName,
CAST(COLUMN_NAME AS datetime) AS OverwriteColumnName
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = N'Table1'
AND DATA_TYPE IN (N'datetime')
AND COLUMN_NAME IN ('DateField1', 'DateField2')
このprocが呼び出されたときにエラーメッセージがスローされても動作しないようですGE
要求が失敗しました:無効な列名を:DateField1
は 要求が失敗しました:無効な列名:DateField2
も私もBIT列を追加したいが。
私がUNION ALLを使用しているので、クエリが短い場合は、誰でも助けてくれますか?
あなたが取得したい結果をあなたの質問を編集して、ご提示ください。また、使用しているデータベースにタグを付けます。 –