数据库与数据库表间的双向链接

数据库与数据库表间的双向链接,第1张

数据库数据库表之间的相关性是通过表文件和库文件之间的双向链接实现的。双向链接包括前链和后链,前链是保存在数据库文件文件中的表文件的路径和文件名信息,它将数据库和表文件相连接;后链是存放在表的表头中的数据库文件的路径和文件名,用以将该表与拥有该表的数据库容器相连接。

create TRIGGER [dbo].[tr_tb_erp_make_Pack_insert]

ON [dbo].[tb_erp_make_Pack]

FOR INSERT

AS

BEGIN

SET XACT_ABORT ON

SET NOCOUNT ON

declare @out_Flag int=0

declare @out_Rtn varchar(40)=''

declare @smsg nvarchar(400)

DECLARE @v_barCode VARCHAR(20)

DECLARE @v_cInvCode NVARCHAR(20)

DECLARE @v_packID INT

DECLARE @v_packDate DATETIME

DECLARE @v_userID INT

begin tran

DECLARE Cur CURSOR FOR

SELECT barCode,cInvCode,packID,packDate,userID FROM inserted

OPEN Cur

FETCH NEXT FROM Cur INTO @v_barCode,@v_cInvCode,@v_packID,@v_packDate,@v_userID

WHILE @@FETCH_STATUS=0

BEGIN

SET @out_Flag = 0

SET @out_Rtn='添加成功!'

IF EXISTS(SELECT 1 FROM tb_erp_make_barCode WHERE barCode=@v_barCode)

BEGIN

UPDATE dbo.tb_erp_make_barCode SET cInvCode=@v_cInvCode,packID=@v_packID,packDate=@v_packDate,vFlag=0 WHERE barCode=@v_barCode

IF @@error <>0

BEGIN

SET @out_Flag=1

SET @out_Rtn='触发器修改(UPDATE)错误!'

SET @smsg='错误:'+@out_Rtn

ROLLBACK TRAN

RAISERROR (@smsg,11,1)

RETURN

END

END

ELSE

BEGIN

INSERT INTO dbo.tb_erp_make_barCode

(

barCode ,packID ,packDate ,cInvCode

)

VALUES (

@v_barCode ,@v_packID ,GETDATE() ,@v_cInvCode

)

IF @@error <>0

BEGIN

SET @out_Flag=2

SET @out_Rtn='触发器新增(INSERT)错误!'

SET @smsg='错误:'+@out_Rtn

ROLLBACK TRAN

RAISERROR (@smsg,11,1)

RETURN

END

END

FETCH NEXT FROM Cur INTO @v_barCode,@v_cInvCode,@v_packID,@v_packDate,@v_userID

END

CLOSE Cur

DEALLOCATE Cur

COMMIT TRAN

RETURN

END

把标识不插入。

use 数据库2

insert into 表1(字段1,字段,……)

select 字段1,字段,…… from 数据库1.dbo.表1。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6781995.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存