Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 在DB2中声明一个变量_Variables_Db2 - Fatal编程技术网

Variables 在DB2中声明一个变量

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中实现这一点?(如果您

我完全是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中实现这一点?(如果您能告诉我这样做的方法,以使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语句,然后返回值