2016-09-25 52 views
1

讓我們爲了討論說,在的MS Access選擇..到MS訪問SQL Server相當於

select id, value into newtable 
from oldtable 

我有以下查詢我需要複製,在SQL服務器存儲過程 它會如下:

Delete newtable if exists 
Create newtable 
Copy values 

還是有另一種方法呢?

+0

'SELECT * INTO ...'是SQL Server兼容的語法。 – Parfait

回答

0

如果表不存在,你會怎麼做:

select id, value 
into newtable 
from oldtable; 

如果該表確實存在:

drop table newtable; 

select id, value 
into newtable 
from oldtable; 
+0

是否顯示了複製select..into行爲的確切步驟?我不太在意語法(儘管感謝它) – Eminem

+1

@Eminem。 。 。兩個數據庫中「select into」的語法都是相同的。你的代碼不需要改變。 –

0

如果您已遷移的舊錶到SQL服務器,使用在你的程序中使用腳本。

IF EXISTS (SELECT 1 
      FROM INFORMATION_SCHEMA.TABLES 
      WHERE TABLE_SCHEMA = 'dbo' 
      AND TABLE_NAME = 'NewTable') 
    BEGIN 
     DROP TABLE NewTable 
    END 

    SELECT ID,VALUE INTO NewTable FROM OldTable. 

的EXISTS子句將檢查並刪除newtable中如果你的數據庫已經存在了。在SQL Server中編寫表格存在檢查的方法有很多種,您可以按照其中任何一種方式進行。

IF OBJECT_ID (N'NewTable', N'U') IS NOT NULL 
    DROP TABLE NewTable 

OR

IF EXISTS(SELECT 1 FROM sys.Objects WHERE Object_id = OBJECT_ID(N'dbo.NewTable') AND Type = N'U') 
    BEGIN 
     DROP TABLE NewTable 
    END