在我的数据库中,所有表都使用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)
Run Code Online (Sandbox Code Playgroud)
获取插入的ID并在Table_Products中使用它:
INSERT INTO Table_Products (ID, Product_Name, Product_ID(Auto Increment)
VALUES (ID from TABLE_ID, SomeProduct, Increment)
Run Code Online (Sandbox Code Playgroud)
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'
Run Code Online (Sandbox Code Playgroud)
在插入语句后使用 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')
Run Code Online (Sandbox Code Playgroud)
您可以使用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39371 次 |
| 最近记录: |