“create if not exists”和“create table like”sql server query

时间:2013-07-22 06:11:58

标签: sql-server tsql

如果该表不存在,我该如何创建表。在我的情况下,我想用这个查询创建表:

SELECT * 
INTO a
FROM b

db B中的表a和db B中的表b任何帮助?

3 个答案:

答案 0 :(得分:5)

if not exists (select [name] from sys.tables where [name] = 'a') SELECT * 
INTO A.dbo.a
FROM B.dbo.b

你可以尝试这个..它很简单。

答案 1 :(得分:4)

您可以使用SQL Server的OBJECT_ID功能。

IF OBJECT_ID('a') IS NULL
        SELECT *
        INTO a
        FROM b

答案 2 :(得分:0)

MySQL,PostgreSQL,Sqlite:

CREATE TABLE IF NOT EXISTS t_exists1 
(
   c1 TYPE
);

甲骨文:

   DECLARE cnt NUMBER;
   BEGIN
     SELECT count(*) INTO cnt FROM all_tables WHERE table_name = 'T_EXISTS1';
     IF cnt = 0 THEN 
       EXECUTE IMMEDIATE 'CREATE TABLE t_exists1 
         (
           c1 TYPE
         );'; 
     END IF;
   END;

SQL Server:

  IF OBJECT_ID('t_exists1', 'U') IS NULL
  CREATE TABLE t_exists1 
  (
       c1 TYPE
  );