各位大虾,小弟有一个问题,多人操作一张表,向这个表里插入记录,每次插入记录的时候,都要先给出这个表的最大值,如何才能保证插入不重复阿!
解决方案 »
- SQL中如何把1笔资料重复显示成多笔,不要用循环!
- 还原数据库问题,急!!在线等,分不够再加!!
- 如何根据某个字段值生成多行记录的新表,通过语句实现,求高手解决。
- SQL 分组 取前3个的问题
- 如何使用程序调用一个已经在sql server里定义好了的DTS包并向里面传递参数?
- 请各位大侠帮忙写个查询语句,谢谢!!!!!
- 紧急问题:我的SQL上次关机还好好的,今天突然不能启动了!帮帮我!!
- 我刚刚不小心把数据库里的存储过程手动删除了,如何恢复>?
- 怎样将RECORDSET里面的数据直接INSERT进表里面去,不考虑将RECORDSET的数据取出来再处理!
- 急急急!我在数据库编程时(VB)遇到个棘手问题,请高手帮忙...
- 求优化检索的解决方案2
- 如何将字段里的值作为查询条件
引用邹建的
-- 测试数据
IF OBJECT_ID('T1') IS NOT NULL
DROP TABLE T1
IF OBJECT_ID('T2') IS NOT NULL
DROP TABLE T2
IF OBJECT_ID('T3') IS NOT NULL
DROP TABLE T3CREATE TABLE T1(
id int IDENTITY, col int)
CREATE TABLE T2(
id int IDENTITY, col int)
CREATE TABLE T3(
t1_id int, t2_id int)
GO-- 在t2上写个触发器, 传出数据
CREATE TRIGGER tr_T2_insert ON T2
FOR INSERT
AS
IF OBJECT_ID('tempdb..#') IS NOT NULL
INSERT # SELECT id FROM inserted
GO-- 追加数据处理
DECLARE @t1_id int
IF OBJECT_ID('tempdb..#') IS NOT NULL
DROP TABLE #
CREATE TABLE #(id int)INSERT T1 VALUES(1)
SET @t1_id = SCOPE_IDENTITY()INSERT T2(col) VALUES(11)
WAITFOR DELAY '00:00:02'
INSERT T2(col) VALUES(21)
WAITFOR DELAY '00:00:02'
INSERT T2(col) VALUES(31)
WAITFOR DELAY '00:00:02'
INSERT T2(col) VALUES(41)
WAITFOR DELAY '00:00:02'
INSERT T2(col) VALUES(51)INSERT T3 SELECT @t1_id, id FROM #
DROP TABLE #-- 显示结果
SELECT *
FROM T2, T3
WHERE T2.id = T3.t2_id
AND T3.t1_id = @t1_id
GO-- 删除测试
--DROP TABLE T1, T2, T3
DECLARE @t1_id int
IF OBJECT_ID('tempdb..#') IS NOT NULL
DROP TABLE #
CREATE TABLE #(id int)INSERT T1 VALUES(1)
SET @t1_id = SCOPE_IDENTITY()INSERT T2(col) VALUES(12)
WAITFOR DELAY '00:00:02'
INSERT T2(col) VALUES(22)
WAITFOR DELAY '00:00:02'
INSERT T2(col) VALUES(32)
WAITFOR DELAY '00:00:02'
INSERT T2(col) VALUES(42)
WAITFOR DELAY '00:00:02'
INSERT T2(col) VALUES(52)INSERT T3 SELECT @t1_id, id FROM #
DROP TABLE #-- 显示结果
SELECT *
FROM T2, T3
WHERE T2.id = T3.t2_id
AND T3.t1_id = @t1_id
GO