我必须重新调整现有程序处理数据库的方式。
之前,我正在连续使用odbc_php执行语句
E.g
SELECT [Value1] FROM TABLE
保存到$value1
INSERT INTO TABLE2 (VALUE2) VALUES ('$value1')
UPDATE TABLE SET [Value1] = '" . $value1 + 1 . "'
你明白了。
但是我相信这种运行语句的方式会导致与其他用户的冲突。数据库。
我的解决方案是将语句作为隐式事务运行,但是我需要保存值和&在此次交易中重复使用。
所以,如何从MSSQL中的select语句中保存值? (我的技能对于MSSQL来说并不理想,因此任何好的教程或帮助文档都是适用的)
答案 0 :(得分:1)
处理并发尝试命中这一系列命令时遇到一些问题。鉴于:
和
在这种情况下,我认为您需要先更新Table1,然后在更新之前将原始值插入table2,确保它保持连续:
DECLARE @UpdatedVal TABLE (InsertVal INT)
UPDATE Table1
SET Value1 = (Value1 + 1)
OUTPUT INSERTED.Value1
INTO @InsertedVal
INSERT INTO Table2 (VALUE2)
VALUES ((SELECT(InsertVal - 1) FROM @UpdatedVal)
GO
答案 1 :(得分:0)
一个例子:
declare @value int <\or any datatype> --create a variable
select @value = value1
from table --set the value
insert into table2 (value2) values(@value) --insert it