2016-05-10 27 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: - 不完全是性能改進,但是這是在插入多行時避免模糊列名的更好方法。 :) –