触发器、数据库连接的问题

bee6803 2006-05-20 12:41:31
1、有两个表A、B表结构相同。问:如何用触发器实现当向表A插入记录时自动向表B插入记录?
2、使用连接时,是一直保持数据库连接好呢?还是要使用数据库时重新连数据库好呢?哪一种连接方式占用资源少些?哪种方式可以使软件运行得更快一些?
...全文
137 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
itblog 2006-05-20
  • 打赏
  • 举报
回复
create trigger trigger_AtoB on A
for insert
as
begin
insert B select * from inserted
end


使用数据库时重新连数据库好,资源占用小~
lxzm1001 2006-05-20
  • 打赏
  • 举报
回复
create table a(id int,col varchar(10))
insert a select 1,'111'
union all select 2,'222'
union all select 3,'333'
create table b(id int,col varchar(10))
insert b select 1,'1111'
union all select 2,'2222'
union all select 3,'3333'
go
create trigger test on a
for insert
as
insert b select * from inserted
go
select * from a
select * from b
go
insert a select 4,'444'
go
select * from a
select * from b
lxzm1001 2006-05-20
  • 打赏
  • 举报
回复
看错。。是插入
lxzm1001 2006-05-20
  • 打赏
  • 举报
回复
create trigger triggername on tablename1
for
delete
as
delete tablename2 from deleted where deleted.id=tablename2.id
bee6803 2006-05-20
  • 打赏
  • 举报
回复
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[T_STONEKC]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[T_STONEKC]
GO

CREATE TABLE [dbo].[T_STONEKC] (
[id] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL primary key,
[ck] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL primary key,
[kcsl] [int] NULL default 0,
[jg] [float] NULL default 0
) ON [PRIMARY]
GO

我的本意是想用id\ck两个作为主键,但不知在语句中要如何写啊。这样写会出错。
bee6803 2006-05-20
  • 打赏
  • 举报
回复
'这是用VB写的一个连接与关闭连接的语句
Public Sub OpenOrCloseDataBaseConnection()
If Con.State = 1 Then
Con.Close
Else
Con.CursorLocation = adUseClient
Con.Open strConnectionString
End If
End Sub

我在要连数据库时调用OpenOrCloseDatabaseConnection打开连接
使用完毕时调用OpenOrCloseDatabaseConnection关闭连接。
不知这样能否达到如题的目的????

bee6803 2006-05-20
  • 打赏
  • 举报
回复
谢谢lxzm1001(*蓝星之梦*) 。不知第二个问题要如何解释呢?

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧