if exists(select * from sysobjects where name ='表名')

解决方案 »

  1.   


    IF OBJECT_ID (N'bas_CardType') IS NULL
    BEGIN  --如果不存在该表,则进行创建
        --drop table com_CodeRecord
        CREATE TABLE bas_CardType
    (
    FKey           UNIQUEIDENTIFIER 
                        --创建默认值
    CONSTRAINT DF_bas_CardType_FKey DEFAULT (newid()) 
    NOT NULL,  --不允许为空
            FCode          NVARCHAR(20),
    FName        NVARCHAR(20)
    CONSTRAINT PK_bas_CardType PRIMARY KEY (FKey)  --主键
    )
       PRINT 'bas_CardType created'
    END
      

  2.   


    我把我的代码发给你看下,版主! private void CreatandInsert() 
            {
                string connectionString = "data source=QT-201309102116\\SQLEXPRESS;uid=sa;pwd=123456;database=gongan_183";
                ArrayList al = new ArrayList(); 
                foreach (DataTable dt in dataSet.Tables) 
                {
                    string sql_creat = "Create Table " + Table_Name + " ( "; 
                    foreach( DataColumn dc in dt.Columns )
                    {
                        //MessageBox.Show(dc.ColumnName);//列名
                        sql_creat = sql_creat + dc.ColumnName.Replace(" ", "") +" ";
                        string datatype_test = dc.DataType.ToString();
                        string sql_datatype;
                        if (datatype_test == "System.Decimal")
                        {
                            sql_datatype = "decimal";
                            sql_creat += sql_datatype + ", ";
                        }
                        if (datatype_test == "System.String") 
                        {
                            //string dcname = dc.ColumnName.ToString();
                            //int len = dcname.Length;
                            sql_datatype = "varchar(240)";
                            sql_creat += sql_datatype + ", ";
                        }
                        if (datatype_test == "System.Boolean") 
                        {
                            sql_datatype="bit";
                            sql_creat += sql_datatype + ", ";
                        }
                        if (datatype_test == "System.DateTime") 
                        {
                            sql_datatype = "datetime";
                            sql_creat += sql_datatype + ", ";
                        }
                        if (datatype_test == "System.Int") 
                        {
                            sql_datatype = "int";
                            sql_creat += sql_datatype + ", ";
                        }                }
                    sql_creat = sql_creat.Substring(0, sql_creat.Length - 2) + ") ";
                    al.Add(sql_creat);
                    try
                    {
                        SqlConnection con = new SqlConnection(connectionString);
                        SqlCommand cmd1 = new SqlCommand(sql_creat, con);
                        con.Open();
                        cmd1.ExecuteNonQuery();
                        con.Close();
                    }
                    catch (Exception ex) 
                    {
                        Console.WriteLine(ex.Message);
                    }
                    int a = 0;
                    dataChanged(a);
                    foreach(DataRow dr in dt.Rows)
                    {
                        
                        string sql_insert = "insert into " + Table_Name + " ( ";
                        foreach (DataColumn dc in dt.Columns) 
                        {
                            sql_insert = sql_insert + dc.ColumnName.Replace(" ", "") + ",";
                        }
                        sql_insert = sql_insert.Substring(0, sql_insert.Length - 1) + ")";
                        sql_insert += " values (";
                        i = 0;
                        foreach (DataColumn dc in dt.Columns) 
                        {
                            string s = dr.ItemArray[i].ToString().Trim();
                            if (s == "")
                            {
                                sql_insert = sql_insert + "' ',";
                            }
                            else
                            {
                                sql_insert = sql_insert + "'"+dr.ItemArray[i].ToString().Trim() + "',";
                            }
                            i++;
                        } 
                        sql_insert = sql_insert.Substring(0, sql_insert.Length - 1) + ")";
                        al.Add(sql_insert);
                        try
                        {
                            SqlConnection con = new SqlConnection(connectionString);
                            SqlCommand cmd2 = new SqlCommand(sql_insert, con);
                            con.Open();
                            cmd2.ExecuteNonQuery();
                            con.Close();
                        }
                        catch(Exception ex) 
                        {
                            Console.WriteLine(ex.Message);
                        }
                        a++;
                        dataChanged((a*100)/dt.Rows.Count);
                    }                dataChanged(100);
                    MessageBox.Show("导入成功!!");
                }
            }
      

  3.   

    string sql_creat = "Create Table " + Table_Name + " ( "; 
    这一语句改成
    string sql_creat = "if not exists(select * from sysobjects where name ='"+Table_Name+"')  Create Table " + Table_Name + " ( "; 
      

  4.   


    貌似不行啊!
    if exists这句是sql代码的你要用cmd执行
      

  5.   

    SELECT     COUNT(*) AS Expr1
    FROM         sysobjects
    WHERE  name ='"+Table_Name+"'
    返回1就存在
      

  6.   

    http://bbs.csdn.net/topics/390585105
    不久前有人发的帖子
      

  7.   

     SqlConnection con = new SqlConnection("Data Source=10.168.1.5;Initial Catalog=data;User ID=sa;password=sa;Integrated Security=False");  
             con.Open();  
         string sql="SELECT COUNT(*) FROM sysobjects WHERE  name ='"+Table_Name+"'";
             SqlCommand cmd = new SqlCommand(sql, con);  
             if ((int)cmd.ExecuteScalar() > 0)  
             {  
                 listBox1.Items.Add(s1 + " 表已经存在");  
             }           cmd.Dispose();  
             con.Close();  
      

  8.   

    messagebox.show("表已经存在!");