Variables 在DB2中声明一个变量
我完全是DB2的新手。我试图帮助其他SQL新手 我尝试在SQL Server中执行的操作如下所示:Variables 在DB2中声明一个变量,variables,db2,Variables,Db2,我完全是DB2的新手。我试图帮助其他SQL新手 我尝试在SQL Server中执行的操作如下所示: declare @MaxValue int select @MaxValue = Max(ID_COLUMN) from MainTable insert into MainTable (ID_COLUMN, OTHER_STUFF) select TEMP_ID + @MaxValue, MORE_OTHER_STUFF from TempTable 如何在DB2中实现这一点?(如果您
declare @MaxValue int
select @MaxValue = Max(ID_COLUMN) from MainTable
insert into MainTable (ID_COLUMN, OTHER_STUFF)
select TEMP_ID + @MaxValue, MORE_OTHER_STUFF
from TempTable
如何在DB2中实现这一点?(如果您能告诉我这样做的方法,以使ID_列中插入的值保持从当前最大值开始计数,则可获得额外积分。)
注意:我看到很多例子说你可以像这样声明一个变量
DECLARE myvariable int;
但这对我们来说是个错误。因此,如果您使用该语法,也许您可以对其不起作用的原因进行注释。变量可以在复合SQL块中声明,该块通过BEGIN ATOMIC表示。您所拥有的应该起作用。听着,你确定你没有犯更多的婚前打字错误吗?也许在你程序的开始部分 听起来你想给我一个类似这样的身份栏
col3 INT NOT NULL GENERATED ALWAYS AS IDENTITY
(START WITH 100, INCREMENT BY 5))
如果您来自SQL Server/Sybase,那么DB2 identity列的一个优点是它们不会像在上述平台上那样“跳跃”
如果您需要知道最后生成的标识值,那么您可以执行以下操作
VALUES IDENTITY_VAL_LOCAL() INTO :MY_LOCAL_VAR_FOR_IDENTITY
因此,您可能需要执行上述两条SQL语句,然后返回值