我有四个表:Messages,MessageCategory,MessageStatus和MessageLevel。
MessageCategory,MessageStatus和MessageLevel只有三个字段:Identity(主键),Code和Description。 Messages引用这三个字段,并具有一些其他数据字段,包括Identity(主键),MessageText和Order。 Identity字段是自增的字段。
我现在需要编写一个SQL脚本,向所有四个表添加一些默认数据。问题是,我需要创建一个脚本,该脚本将被发送给客户,然后由客户执行此脚本。我无法编写更加智能的代码来完成整个更新。虽然三个表只是简单的插入语句,但是Messages表使我额外头疼。
我不能删除任何索引,也不能假定它从1开始计算主键。
所以,以一个示例为例,以下是一些数据:
MessageCategory,MessageStatus和MessageLevel只有三个字段:Identity(主键),Code和Description。 Messages引用这三个字段,并具有一些其他数据字段,包括Identity(主键),MessageText和Order。 Identity字段是自增的字段。
我现在需要编写一个SQL脚本,向所有四个表添加一些默认数据。问题是,我需要创建一个脚本,该脚本将被发送给客户,然后由客户执行此脚本。我无法编写更加智能的代码来完成整个更新。虽然三个表只是简单的插入语句,但是Messages表使我额外头疼。
我不能删除任何索引,也不能假定它从1开始计算主键。
所以,以一个示例为例,以下是一些数据:
INSERT INTO MessageCategory (Code) Values ('Cat01');
INSERT INTO MessageStatus (Code) Values ('Status01');
INSERT INTO MessageLevel (Code) Values ('Level01');
而且消息需要类似于这样的内容:
INSERT INTO Messages(Category, Status, Level, MessageText, Order)
VALUES(
(SELECT Identity from MessageCategory where Code='Cat01'),
(SELECT Identity from MessageStatus where Code='Status01'),
(SELECT Identity from MessageLevel where Code='Level01'),
'Just some message',
1
);
但是那样做行不通。那么,让这个工作的诀窍是什么呢?(同时保持代码可读性...)
不幸的是,我无法访问另一个数据库。我可以测试它,但一旦它似乎可以工作,只需要发送并祈祷它能正常工作...