我已经在sql server中创建了一个链接到oracle的服务器,我希望在sql server中在表上编写一个触发器,以便将数据插入到oracle表中。例如,表a位于sql服务器中,表b位于oracle上。如果我在表a中插入记录,则需要复制或插入Oracle表b中的值。这两个表具有相同的结构。
表a id varchar2(10);名称varchar2(10);
表b id varchar2(10);名称varchar2(10);
(这是MSSQL 2008R2服务器上的一个项目)
我的任务是将一个表分成一个内部的(和以前一样的db )和一个外部的(不同的服务器)。目前的想法是只从外部表中读取,并在可能的情况下插入外部表。如果无法访问外部,则插入将被重定向到内部表,直到外部恢复联机为止。内部表中的记录随后将手动移到外部表中。
目前,我们已经创建了一个指向外部表的视图,并创建了一个替代insert触发器,用于执行以下操作:
ALTER TRIGGER dbo.Log_IoI ON dbo.Log
INSTEAD OF INSERT
AS
BEGIN
BEGIN TRY
INSERT I
对正在复制大量数据并将其插入到同一个表中的insert语句使用ROWLOCK是否明智?
例如)
INSERT INTO TABLE with (rowlock) (id, name)
SELECT newid, name
FROM TABLE with (nolock)
WHERE id = 1
有没有人有关于如何改进这条语句的建议,因为我看到当SQL Server变得繁忙时,它将以返回给SQL Server的超时查询结束。
我使用的是SQL server 2005,SQL server studio客户端。我有一个很长的存储过程(它做了一堆表连接,一些删除,一些插入和一些更新)周期性地运行(大约每隔2分钟)。
使用此sp后,我注意到数据库有时没有响应(在SP未运行时会发生几次,在SP运行期间会发生很多次)。当数据库没有响应时,我不能从SQL server studio客户端打开新的连接,如果我运行一个查询/sp,状态将变为running,并且永远保持这种状态,直到我从控制面板admin-tools手动重置SQL服务。
你见过类似的问题吗?
可能是因为我新创建的SP做了太多的事情而导致数据库崩溃?
我在本地数据库中的SQL表上有一个非常简单的触发器。触发器看起来像这样:
ALTER TRIGGER [dbo].[trg_UpdateAzureDB]
ON [dbo].[my_local_table]
AFTER INSERT,DELETE,UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trig
我来自甲骨文背景,对Server有点困惑。
我希望停止Server自动提交我的插入命令。所以我正在使用begin transaction。在下面的演示中,我将在测试表中插入100行,并在事务结束时回滚。我期望的结果是90行(提交应该在30、60和90行),rest 10记录应该回滚。
CREATE TABLE test (TEST_ID INT);
GO
DECLARE @cnt INT=0;
BEGIN TRANSACTION t1;
WHILE @cnt < 100
BEGIN
INSERT INTO test values (@cnt);
SET @cnt += 1;
我正在尝试将内存中的数据行插入到SQL Server Express 2005上的表中。在我看来,它运行得非常慢--大约每插入1000行就运行5秒。我只是在使用一个基本的"INSERT INTO“命令。慢并不依赖于表数据-对于一个只有一个int列但没有索引的表,它仍然很慢。这与我的软件无关-它只是在Management Studio的循环中运行SQL的速度一样慢。在同一时间,没有其他任何东西可以访问数据库。在3 3Ghz (旧的我知道)上,这将需要大约10秒来执行:
declare @i int
set @i = 0
set nocount on
while @i <
我现在正在我的项目中使用SQL server 2008来存储和获取数据。到现在为止一切都很完美。我可以在不到50 in (JSON)内获取20000条记录。但要面对插入的问题。在我的项目中,我需要能够每分钟插入大约100000条记录。对于SQL server来说,这似乎非常慢。
我尝试使用另一个数据库(NOSQL ),如mongoDB,与SQLServer(270)相比,它在存储数据(5s)方面非常快,但在获取数据(20000 => 180 as )方面却不像sql那样快。
因此,我在这里询问,是否有任何方法使SQL存储速度更快。或者让mongoDB在获取方面更快(我不是mongoDB方
我在帮助我的一些同事解决SQL问题。他们主要希望将表A中的所有行移动到表B(两个表都具有相同的列(名称和类型))。虽然这是在Oracle 11g中完成的,但我并不认为这真的很重要。
它们最初的天真实现类似于
BEGIN
INSERT INTO B SELECT * FROM A
DELETE FROM A
COMMIT;
END
他们担心的是,在从A到B的复制过程中对表A进行了插入,而“从A删除”(或因价值而截断)将导致数据丢失(删除A中插入的较新行)。
当然,我很快建议将复制行的in存储在临时表中,然后只删除与临时表中的IDs匹配的A中的行。
然而,出于好奇,我们在INSERT和