如何测试 table 中是否存在一组特定字段
How to test for existence of a specific set of fields in a table
我希望能够测试 table 是否有一组特定的字段(我只满足于名称比较;当然,types/lengths/etc 可以更改)。我发现测试单个字段的存在并不难,但我正在处理的 table 有大约 80 个字段,我希望不必逐一检查。
这里的主要目标是在代码中执行完整性检查,以确认 table 没有被更改,因此在复制记录时,不会遗漏任何字段。
我相信你的查询应该是
SELECT count(*)
FROM DatabaseName.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'TableName' and COLUMN_NAME='YourColumnName'
如果计数>0则存在
if
(SELECT ORDINAL_POSITION
FROM information_schema.columns
WHERE TABLE_CATALOG='your_db'
AND
TABLE_NAME='YOUR_TABLE'
AND
COLUMN_NAME='COLUMN_NAME')>0
..
我希望能够测试 table 是否有一组特定的字段(我只满足于名称比较;当然,types/lengths/etc 可以更改)。我发现测试单个字段的存在并不难,但我正在处理的 table 有大约 80 个字段,我希望不必逐一检查。
这里的主要目标是在代码中执行完整性检查,以确认 table 没有被更改,因此在复制记录时,不会遗漏任何字段。
我相信你的查询应该是
SELECT count(*)
FROM DatabaseName.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'TableName' and COLUMN_NAME='YourColumnName'
如果计数>0则存在
if
(SELECT ORDINAL_POSITION
FROM information_schema.columns
WHERE TABLE_CATALOG='your_db'
AND
TABLE_NAME='YOUR_TABLE'
AND
COLUMN_NAME='COLUMN_NAME')>0
..