在过去,我使用过Oracle数据库。
为了填充这些内容,我使用了命令,例如:
Program.Object.Create, Field1="Value1", Field2="Value2", ...
该技术的名称称为"GCC“或"TOC”(取决于所使用的版本)。
我想使用这种技术(或类似的技术)来填充其他数据库(比如Server),因为目前我们正在使用SQL来填充这些数据库,比如:
INSERT INTO Table1 (Field_1, Field_2, ..., Field_n) VALUES (Value_1, Value_2, ..., Value_n)
正如您所看到的,Field_i
和Value_i
之间的链接并不是那么简单。
我不知道这种技术的名称,我甚至不知道这种技术是公开的还是内部写的。
如果这项技术是公开的,如果它可以用于其他数据库技术(比如SQL-server),谁能给我一个提示吗?
提前感谢
编辑:我是什么意思,不直截了当?
假设一个有十列的表,我想修改一些值。在SQL中,这将导致SQL更新查询,如:
UPDATE Table1 SET Name, ID, Cause, SubCause, Feature, SubFeature, Call, SubCall, Type, SubType VALUES (8, 9, 6, 2, 4, 3, 8, 5, 3, 1);
UPDATE Table1 SET Name, ID, Cause, SubCause, Feature, SubFeature, Call, SubCall, Type, SubType VALUES (2, 6, 8, 1, 3, 8, 5, 3, 1, 5);
UPDATE Table1 SET Name, ID, Cause, SubCause, Feature, SubFeature, Call, SubCall, Type, SubType VALUES (9, 6, 5, 2, 4, 8, 6, 3, 2, 4);
为了知道哪些是这些语句中的子特性,我需要计算这些子特性在哪一列中存在。那似乎是第六次了。然后,我需要寻找第六个值,我看到的结果(3,8和8再次)。
在GCC/TOC技术中,这要简单得多(滚动后:- ):
Program.Table1.Modify,Name="8", ID="9", Cause="6", SubCause="2", Feature="4", SubFeature="3", Call="8", SubCall="5", Type="3", SubType="1";
Program.Table1.Modify,Name="2", ID="6", Cause="8", SubCause="1", Feature="3", SubFeature="8", Call="5", SubCall="3", Type="1", SubType="5";
Program.Table1.Modify,Name="9", ID="6", Cause="5", SubCause="2", Feature="4", SubFeature="8", Call="6", SubCall="3", Type="2", SubType="4";
发布于 2022-02-23 14:10:47
本机T语言还允许通过SELECT
语句插入/更新,而不是硬编码值。然后,您可以利用别名,以更好的可读性来模仿您在Oracle中的习惯。例如:
INSERT INTO Table1 (Field_1, Field_2, Field_n)
SELECT Value_1 AS Field_1, Value_2 AS Field_2, Value_n AS Field_n;
或者我个人更倾向于格式化以提高可读性:
INSERT INTO Table1 (Field_1, Field_2, Field_n)
SELECT
Value_1 AS Field_1,
Value_2 AS Field_2,
Value_n AS Field_n;
就更新而言,您提供的“不直接”示例是无效的语法,因此它不会在Server上工作。T中正确的语法是:
UPDATE Table1
SET
Name = 9,
ID = 6,
Cause = 5,
SubCause = 2,
Feature = 4,
SubFeature = 8,
Call = 6,
SubCall = 3,
Type = 2,
SubType = 4;
这与您在Oracle中熟悉的内容很相似。
另外,如果您只想更新记录的一个子集,例如已经使用ID = 6
的记录,那么下面的示例将说明如何实现这一点:
UPDATE Table1
SET
Name = 9,
Cause = 5,
SubCause = 2,
Feature = 4,
SubFeature = 8,
Call = 6,
SubCall = 3,
Type = 2,
SubType = 4
WHERE ID = 6; -- Updates only the records whose ID already = 6
https://dba.stackexchange.com/questions/307861
复制相似问题