原帖见:
http://topic.csdn.net/u/20100205/10/0b9c6725-78eb-47e6-8441-f20a187effac.html?seed=1507649697&r=63278774#r_63278774

解决方案 »

  1.   


    --用osql
    EXEC   master..xp_cmdshell   'Osql   -s.   -Usa   -P你的密码   -ic:\a.sql'
      

  2.   


    刚调用了  private string strServer = "server=.;database=Client;uid=sa;pwd=sa";
            private void button2_Click(object sender, EventArgs e)
            {
                this.openFileDialog1.ShowDialog();
                this.textBox1.Text = this.openFileDialog1.FileName;
            }        /// <summary>
            /// 执行SQL语句,返回影响的记录数
            /// </summary>
            /// <param name="SQLString">SQL语句</param>
            /// <returns>影响的记录数</returns>
            public  int ExecuteNonQuery(string SQLString)
            {
                using (SqlConnection connection = new SqlConnection(this.strServer ))
                {
                    using (SqlCommand cmd = new SqlCommand(SQLString, connection))
                    {
                        try
                        {
                            connection.Open();
                            int rows = cmd.ExecuteNonQuery();
                            return rows;
                        }
                        catch (System.Data.SqlClient.SqlException e)
                        {
                            connection.Close();
                            throw e;
                        }
                    }
                }
            }        private void button3_Click(object sender, EventArgs e)
            {
                string strSQL = "EXEC  master..xp_cmdshell   'Osql -s.-Usa -Psa -i" + this.textBox1.Text .ToString ()+ "'";
                try
                {
                    ExecuteNonQuery(strSQL);
                }
                catch
                { 
                
                }
            }
    返回值 是-1  执行不成功啊?
    帮帮忙给看看下。
      

  3.   

    顺便给你看下.SQL 里面的东西、
    就是create database testtest
    go
    use testtestif exists (select 1
       from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = 'F')
       where r.fkeyid = object_id('tbContract') and o.name = 'FK_TBCONTRA_FK_CONTRA_TBPRODUC')
    alter table tbContract
       drop constraint FK_TBCONTRA_FK_CONTRA_TBPRODUC
    go就这么点。
      

  4.   

    你要执行的 *.sql文件,一定要在执行的那台sql server本机上!而要执行的内容,则由下面的决定
    EXEC   master..xp_cmdshell   'Osql   -S servername -U sa -P pwd  -i c:\a.sql'举个例子,你*.sql所在的机器,需要安装sql server ,如B
    那你C#连的就是B
    而你真正要跑的sql 内容是要执行A,
    那么语句exec ...中的servername就是A
      

  5.   

    如果*.sql所在的机器没有sql server,

    1.将文件上传到sql server所在机器
    2.利用c#读取.sql文件,然后执行执行string
      

  6.   

    命令行 都不行。
    我的机子上是有SQL Server的啊
    而且还是开着的啊
      

  7.   

    这个命令是在DOS命令行下执行的
    你应该使用C#调用外部命令来执行上面的命令
    类似这样
    System.Diagnostics.Process.Start("cmd.exe", " /c  attrib +s +h db1.dat"); 
      

  8.   

    Osql  -S servername -U sa -P pwd  -i c:\a.sql
    直接在DOS里执行
      

  9.   

    Hi,
    1) 快捷键 微标 + R 打开 RUN 窗口
    2) 输入CMD
    3)输入如下--信任连接
    sqlcmd -E -S CNSHDEV59\SQLEXPRESS -i "D:\Table.SQL" -o RSMS_DB_Create.log--帐号连接(sa) -o RSMS_DB_Create.log可忽略
    sqlcmd -U sa -P 1werty$%^ -S CNSHDEV59\SQLEXPRESS -i "D:\Db.SQL" -o RSMS_DB_Create.log---补注:Db.SQL详文如下:USE master;
    GO
    IF DB_ID (N'MyShen') IS NOT NULL
    DROP DATABASE MyShen;
    GO
    CREATE DATABASE MyShen
    COLLATE French_CI_AI
    WITH TRUSTWORTHY ON, DB_CHAINING ON;
    GO================== Shenliang1985 ================== 如需要批处理(Bat)方式建库
    可参照如下链接:
    http://shenliang1985.blog.163.com/blog/static/29083805200892143351716/edit/?mode=prev