在我的数据库中,所有表都使用Sequence的公共表(ID_Table).
TABLE_ID有两个字段(Common_ID,Table_Name).
如果我插入表中的任何记录,我要在表ID(自动递增,表名)首先插入一条记录,然后用在我的其他表自动递增值.
例如,我想插入Table_Products,其中包含字段ID(Common_ID),Product_Name,Product_ID(Auto Increment)
我想做这样的事情:
INSERT INTO TABLE_ID (Table_NAME), Values (Table_Products)
获取插入的ID并在Table_Products中使用它:
INSERT INTO Table_Products (ID, Product_Name, Product_ID(Auto Increment) 
VALUES (ID from TABLE_ID, SomeProduct, Increment)
Dev*_*art 28
试试这个 -
DECLARE @ID BIGINT
INSERT INTO dbo.TABLE_ID (Table_NAME) 
SELECT 'Table_Products'
SELECT @ID = SCOPE_IDENTITY()
INSERT INTO dbo.Table_Products (ID, Product_Name)
SELECT @ID, 'SomeProduct'
在插入语句后使用 SCOPE_IDENTITY() 来获取最后插入的 id。
DECLARE @Product_Id int
INSERT INTO TABLE_ID (Table_NAME) VALUES (Table_Products);
SELECT @Product_Id=SCOPE_IDENTITY();
Insert INTO Table_Products (ID, Product_Name)
VALUES (ID from TABLE_ID, 'SomeProduct')
您可以使用insert带有该output子句的语句来生成新的Common_ID.使用insert ... select,您可以在插入操作中指定该ID:
declare @Common_ID as table(ID int)
insert  Table_ID
        (Table_Name)
output  inserted.Common_ID into @Common_ID
values  ('Table_Products')
insert  Table_Products
        (ID, Product_Name)
select  ID
,       'Some Product'
from    @Common_ID