--如果 PERSON_ID 是自增量declare @ID int
begin tran
insert into A
set @ID = @@idectity
insert into A1(A_ID, ....)
commit tran --如果 PERSON_ID 不是自增量
declare @ID int
begin tran
insert into A
select @ID = max(PERSON_ID)
from A
insert into A1(A_ID, ....)
commit tran
begin tran
insert into A
set @ID = @@idectity
insert into A1(A_ID, ....)
commit tran --如果 PERSON_ID 不是自增量
declare @ID int
begin tran
insert into A
select @ID = max(PERSON_ID)
from A
insert into A1(A_ID, ....)
commit tran
解决方案 »
- SQL Server VSS Writer 是干嘛用的?
- 学生信息管理系统中的问题! 小问题,很常见,新手学习~~
- 不好意思没分啦。问下pingip地址通,服务器名不通;telnet 1433不通。怎么解决?
- 一个问题!变量做表名???
- 这样的join怎么写?
- 从后台拷贝文件问题
- 如何update使float型的字段为<null> 而不是0
- 求一条语句的优化方案,看似简单,可效力就是不高
- 在LISTBOX的MOUSEMOVE事件中怎样写鼠标移到哪条item,即选取该item
- 请问MSSQL在存储过程中如何实现异步执行
- 请问MS-SQL7.0中如何把本机当服务器并在本机登陆?
- 请高手指点excel数据导入sql 2000遇到的难题
begin tran
insert into A ---> 这个时候如何获取这个表的ID,再用这个ID作为insert A1的参数 ???
insert into A1(A_ID, ....)
commit tran自增時用@@identity,GUID時用一個變量獲取這個值再插入另一個表
declare @ID int
begin tran
insert into A
select @ID = max(PERSON_ID) + 1 from A
insert into A1(@ID, ....)
commit tran 应该是这样的吗?用了事务是不是在多用户并发新增处理的情况下,不受影响了?
[code=SQL]set xact_abort on
declare @id int
begin tran
insert into A ...
select @id=@@idectity
insert into A1(@id, ....)
commit tran [/code]如果id不是自增长的,你在 insert into A 的时候,就必须指定这个值,这个值直接用在 insert into B 就可以了
自增:
declare @a_id int
insert into a .....
set @a_id=@@identity
insert into a1............uniqueidentifier类型
declare @a_id uniqueidentifier
set @a_id=newid()
insert into a.....insert into a1......其他定义
就先获取该主键应该写入的数据,再依次写入 和uniqueidentifier类型顺序类似,只是这个数据是根据用户定义的逻辑获得的
---可以这样declare @ID int
begin tran
insert into A(id,其他字段) select @ID = isnull(max(PERSON_ID),0) + 1,其他字段 from A WITH(XLOCK,PAGLOCK))
insert into A1(@ID, ....)
commit tran
如果是自增 set @ID = @@idectity 就ok