选择..进入MS Access等效的SQL Server

时间:2016-09-25 23:54:22

标签: sql sql-server ms-access stored-procedures

让我们争辩说我在 MS Access

中有以下查询
select  id, value into newtable
from oldtable

我需要在 sql server 存储过程中复制它 它会如下:

Delete newtable if exists  
Create newtable  
Copy values  

还是有另一种方式吗?

2 个答案:

答案 0 :(得分:0)

如果表格不存在,您可以这样做:

select id, value
into newtable
from oldtable;

如果表格确实存在:

drop table newtable;

select id, value
into newtable
from oldtable;

答案 1 :(得分:0)

如果您已将旧表迁移到SQL Server,请在过程中使用以下脚本。

    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