2016-05-10 26 views
-1

我创建一个脚本,它拥有超过700个INSERT语句如何从脚本删除冗余的insert语句以提高性能

INSERT tableName ([A], [B], [D], [E]) VALUES (1, 1, N'a', N'p') 
INSERT tableName ([A], [B], [D], [E]) VALUES (2, 1, N'x', N'o') 
INSERT tableName ([A], [B], [D], [E]) VALUES (3, 1, N'y', N'u') 
INSERT tableName ([A], [B], [D], [E]) VALUES (4, 1, N's', N't') 
INSERT tableName ([A], [B], [D], [E]) VALUES (5, 1, N'y', N'w') 
INSERT tableName ([A], [B], [D], [E]) VALUES (6, 1, N'z', N'z') 
INSERT tableName ([A], [B], [D], [E]) VALUES (7, 1, N'k', N'f') 

等等....

我想删除冗余部分

INSERT表名([A],[B],[d],[E])

有什么办法可以达到这个目的吗?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

想象:

一些东西一样,

INSERT tableName ([A], [B], [D], [E]) MULTIPLE VALUES 
    (1, 1, N'a', N'p') 
, (2, 1, N'x', N'o') 
, (3, 1, N'y', N'u') 
, (4, 1, N's', N't') 
, (5, 1, N'y', N'w') 
, (6, 1, N'z', N'z') 
, (7, 1, N'k', N'f') 

请指导...我怎么能提高性能,以及,正如我刚才所说,我有700条记录被添加......从单一的脚本..

+1

是的,这是可能的,只是删除'multiple':https://msdn.microsoft.com/en-us/library/ms174335.aspx请参阅:http://sqlfiddle.com/#!6/07202/1 –

+0

可能在SQL Server中通过删除多个。不确定其他供应商。 – Carra

+0

如果您提供表中的所有列,则不需要第一部分: 假设您有列A到E,并且C应该始终为空,那么执行以下操作: INSERT tableName VALUES(1,1,null ,N'a',N'p') INSERT tableName VALUES(2,1,null,N'x',N'o') INSERT tableName VALUES(3,1,null,N'y',N' (',','') INSERT tableName VALUES(4, 1,null,N'z',N'z') INSERT tableName VALUES(7,1,null,N'k',N'f') – nivs1978

回答

1

你可以尝试这样的:

INSERT tableName ([A], [B], [D], [E]) VALUES 
    (1, 1, N'a', N'p') 
, (2, 1, N'x', N'o') 
, (3, 1, N'y', N'u') 
, (4, 1, N's', N't') 
, (5, 1, N'y', N'w') 
, (6, 1, N'z', N'z') 
, (7, 1, N'k', N'f') 

即,只需从查询中删除MULTIPLE,您几乎可以自己找到它。

+0

这会是一种性能改进吗? –

+0

@ N.K: - 不完全是性能改进,但是这是在插入多行时避免模糊列名的更好方法。 :) –