如何测试 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
..