2016-09-25 40 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