我要说的是,您不能为所有表创建通用更新功能。实际上它需要是一个存储过程,就像我想的那样,但那是另一回事。正如@Martin Smith 指出的那样,PK 可以是复合的。我的 PK 绑定了四个字段以使其独一无二。你怎么能解释呢?此外,PK 可以是多种不同的类型。你打算在这个通用存储过程中为所有这些代码编写代码吗?您的代码段假定 PK 是 char 类型。这看起来不太合理。我确实找到了一些代码来让您识别任何表的 PK,但是在那之后您还有很多工作要做,而且您的全部要求还不清楚。
从保管库(这适用于 SQL Server):
SELECT KU.table_name as tablename,column_name as primarykeycolumn
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS TC
INNER JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KU
ON TC.CONSTRAINT_TYPE = 'PRIMARY KEY' AND
TC.CONSTRAINT_NAME = KU.CONSTRAINT_NAME
and ku.table_name='yourTableName'
ORDER BY KU.TABLE_NAME, KU.ORDINAL_POSITION;
从SQL Server:使用 sql 查询获取表主键