如何更新 SQL Server 插入时的关键字段(Siebel 表 S_CAMP_CON)
我需要帮助在 SQL Server 中编写要在 Siebel 中使用的触发器:
- 系统字段 ROW_ID 必须是唯一的(键)
- 当字段 INSERT_CD 和 CAMP_WAVE_ID 为空时,必须生成 ROW_ID(见下文)。
- 如果不是,请保持 ROW_ID 不变。
- ROW_ID 是 varchar(15) 的关键字段。
以下语句生成完美的键/行 id:
select substring(replace (CAST (newid() as varchar(36)),'-',''),1,15)
我需要有关编写 SQL Server 2005 触发器来生成此键的帮助。
I need help on writing a trigger in SQL Server to be used in Siebel:
- The system field ROW_ID has to be unique (key)
- When the field INSERT_CD and CAMP_WAVE_ID is null then ROW_ID must be generated (see below).
- If not, leave ROW_ID as is.
- ROW_ID is a key field of varchar(15).
The following statement generates the perfect key/row id:
select substring(replace (CAST (newid() as varchar(36)),'-',''),1,15)
I need help on writing a SQL Server 2005 trigger to generate this key.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我强烈建议不要修改ROW_ID。使用不同的列,也许添加您自己的扩展列,但不要修改(或尝试自行设置)ROW_ID。将其保留为 Siebel 在其中输入的值。
您不得修改任何系统列(键入“系统”,签入“工具”,在“表”>“列”中)
I would strongly suggest not to modify ROW_ID. Use a different column, maybe add your own extension column, but don't modify (or try to set yourself) ROW_ID. Leave it at the value that Siebel puts in there.
You must not modify any of the system columns (Type "System", check in Tools, in Table > Columns)
这是我们做到的一种方法。我们设置 OBIEE 来生成一个对于当前负载唯一的 ROW_ID,这也是 WHERE 子句可以获取要更新的记录的原因。
但我们担心ROW_ID 的唯一性,因为我们使用的是子字符串。
Here is one way we did it. We setup OBIEE to generate a ROW_ID that is unique for the current load and hence why the WHERE clause can get the record to be updated.
But we are concerned by the uniqueness of ROW_ID since we are using a substring.