sql执行两条语句
1. 怎样才能连续执行两条sql语句
中间加个分号
select * from table1;
select * from table2;
2. 用SQL语句实现两个语句的顺序执行
有两种方法:
方法一: 使用linked_server_name.catalog.schema.object_name,例如:
select * from ERP..CRM.INQ
linked_server_name Linked server referencing the OLE DB data source
catalog Catalog in the OLE DB data source that contains the object
schema Schema in the catalog that contains the object
object_name Data object in the schema
SQL Server用linked_server_name取linked server相关配置信息,然后将catalog、schema、object_name作为参数传递给OLEDB。例如远程链接服务器为SQL Server时catalog为数据库实例名,schema为owner id (dbo);链接服务器为Oracle时 (OLEDB),catalog为空,schema为用户
注意点:
a). 远程链接服务器为Oracle时schema、object_name必须大写(其他类型的不清楚),否则会报错
消息 7314,级别 16,状态 1,第 1 行
链接服务器 "ERP" 的 OLE DB 访问接口 "MSDAORA" 不包含表 ""CRM"."INQ""。该表不存在,或者当前用户没有访问该表的权限。
b). 必须使用完整的名称。例如SQL Server本地执行sql,dbo可以省略不写,使用远程链接服务器时则必须提供
方法二:使用openquery,例如:
select *
from openquery(ERP,'select t.* from(select inq.*,rownum as rindex from inq order by img01) t where t.rindex>=51 and t.rindex<=100')
优点:
a). SQL Server只是将openquery中的sql发送给远程服务器执行,因此可以使用远程链接服务器的所有sql语法(例如Oracle语法),sql对象也不必大写
b). 数据类型的异常很少(个别情况下还是会发生)
c). openquery的写法同样可用于update、insert、delete
d). 链接服务器为Oracle时,schema不必出现在sql语句中
关于使用链接服务器方面的一些限制、前提条件,可以参考https://msdn.microsoft.com/en-us/library/aa172718(SQL.80).aspx
https://msdn.microsoft.com/en-us/library/aa213288(SQL.80).aspx
3. jdbc中同时执行两条查询sql语句,获得结果怎么写
step1:构造连接
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/db","root","123");
step2:构造语句
String sql = "select username,password from t_user where username=?";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, "zhangshan"); //给SQL的"?"(问号)传值。
step3:执行查询
ResultSet rs = stmt.executeQuery(); //rs就是SQL查询语句返回的结果集
step4:处理结果(java 获取SQL查询语句返回的结果)
List list = new ArrayList();
//遍历结果集,这样写就可以了,就是一个循环,有多少条记录,这里就会循环多少次,
//一次就是一条记录,想象一下就像一个表的一条记录
//在这里可以做查询出来的数据处理,可以封装成对象之类的(就是把值给它)
if(rs.next()) { //遍历结果集,这样写就可以了
User u = new User();
String username = rs.getString("username");
String address = rs.getString("password ");
u.setUsername(username);
u.setAddress(address);
list.add(u);
}
//上面这个例子意思是,把每一条记录封装成了一个User对象,然后这些User对象都放存入到了一个list
step4:关闭连接等
4. SQL Server 会同时执行两条 SQL 语句吗
会的,每一次数据库请求都会创建一个会话,所以会同时执行两条sql