将sql脚本放入批处理(.bat)文件中执行

解决方案 »

  1.   

    类似这样:
    --------------------------------------------------------------------------------------------------------------------------
    USE Master
    GOIF NOT EXISTS(SELECT 1 FROM sysdatabases WHERE name=N'W')
        EXEC('CREATE DATABASE W
        ON 
        ( NAME = W_data,
            FILENAME = ''c:\program files\microsoft sql server\mssql\data\W.mdf'' )')SELECT * FROM sysdatabases
    GO
    --添加用户:  
    exec  sp_addlogin  'USER_W','USER_W','W'  --添加到数据库  
    exec  sp_grantdbaccess  'USER_W'--授权
    GRANT ALL TO USER_W
    GO
    USE W
    GO
      

  2.   

    --例如:SqlConnection sqlConn = new SqlConnection ("server=服务器名;database=数据库名;uid=用户名;pwd=密码");
    sqlConn_button12.Open();
    string strSQL="USE Master";
    SqlCommand sqlCmd = new SqlCommand (strSQL,sqlConn);
    sqlCmd.ExecuteNonQuery();
    strSQL="另一条语句";
    sqlCmd = new SqlCommand (strSQL,sqlConn);
    sqlCmd.ExecuteNonQuery();
    strSQL="另一条语句";
    sqlCmd = new SqlCommand (strSQL,sqlConn);
    sqlCmd.ExecuteNonQuery();
    sqlCmd.Dispose();
    sqlConn.Close ();
      

  3.   

    --例如:SqlConnection sqlConn = new SqlConnection ("server=服务器名;database=数据库名;uid=用户名;pwd=密码");
    sqlConn.Open();
    string strSQL="USE Master";
    SqlCommand sqlCmd = new SqlCommand (strSQL,sqlConn);
    sqlCmd.ExecuteNonQuery();
    strSQL="另一条语句";
    sqlCmd = new SqlCommand (strSQL,sqlConn);
    sqlCmd.ExecuteNonQuery();
    strSQL="另一条语句";
    sqlCmd = new SqlCommand (strSQL,sqlConn);
    sqlCmd.ExecuteNonQuery();
    sqlCmd.Dispose();
    sqlConn.Close ();
      

  4.   

    关于授权如何将db_owner授予新用户,使用grant all to usename
    无法将db_owner权限给予username?
      

  5.   

    在存储过程里执行,因为系统存储过程EXECUTE 权限已经授予 public 角色,允许任何人去执行。但是在执行系统存储过程后,将检查用户的角色成员资格。如果此用户不是运行此存储过程所需要的适当的固定服务器或数据库角色的成员,则此存储过程不会继续执行。
    如果跨数据库,最好也在存储过程里执行,因为SQLSERVER不允许有跨数据库权限;只能将当前数据库中的对象和语句的权限授予当前数据库中的用户。