连续执行几个SQL语句问题.数据库与程序问题.大家都是怎么做的?
Connection con=.............; //这里是取得连接代码,省略
PrepareStatment ps=null;
String sql1="select * from test1";
String sql2="update test1 set xxx=1 ";
ps=con.prepareStatement(sql1) ;
ps.executeQuery(sql1); //(执行第一个SQL)
ps.close; //记住每执行一个语句记得关闭,否则会出现游标错误
ps=con.prepareStatement(sql2) ;
ps.executeUpdate(sql2);//(执行第二个SQL)
ps.close; //记住每执行一个语句记得关闭,否则会出现游标错误
con.close(); //关闭连接
以上代码纯手工敲,有问题追问,希望能解决你的问题。
数据没有写入进去(insert语句出现异常)或是在后台没查询出来(写进去了但是select语句出现异常),或是其他的语句的问题比如ResultSet的游标溢出等问题导致不能正常显示.自己打开数据库看数据库中有这样一条记录没.如果没有则是写入失败.有的话就是查询的时候哪里写错了,具体问题自己分析下.要是再不清楚的自己补充下,尽量把问题的范围缩小点,这样大家也好回答点.
用事务,发生错误后回滚。SET XACT_ABORT
指定当 Transact-SQL 语句产生运行时错误时,Microsoft® SQL Server™ 是否自动回滚当前事务。
语法
SET XACT_ABORT { ON | OFF }
注释
当 SET XACT_ABORT 为 ON 时,如果 Transact-SQL 语句产生运行时错误,整个事务将终止并回滚。为 OFF 时,只回滚产生错误的 Transact-SQL 语句,而事务将继续进行处理。编译错误(如语法错误)不受 SET XACT_ABORT 的影响。
对于大多数 OLE DB 提供程序(包括 SQL Server),隐性或显式事务中的数据修改语句必须将 XACT_ABORT 设置为 ON。唯一不需要该选项的情况是提供程序支持嵌套事务时。有关更多信息,请参见分布式查询和分布式事务。
SET XACT_ABORT 的设置是在执行或运行时设置,而不是在分析时设置。
示例
下例导致在含有其它 Transact-SQL 语句的事务中发生违反外键错误。在第一个语句集中产生错误,但其它语句均成功执行且事务成功提交。在第二个语句集中,SET XACT_ABORT 设置为 ON。这导致语句错误使批处理终止,并使事务回滚。
CREATE TABLE t1 (a int PRIMARY KEY)
CREATE TABLE t2 (a int REFERENCES t1(a))
GO
INSERT INTO t1 VALUES (1)
INSERT INTO t1 VALUES (3)
INSERT INTO t1 VALUES (4)
INSERT INTO t1 VALUES (6)
GO
SET XACT_ABORT OFF
GO
BEGIN TRAN
INSERT INTO t2 VALUES (1)
INSERT INTO t2 VALUES (2) /* Foreign key error */
INSERT INTO t2 VALUES (3)
COMMIT TRAN
GO
SET XACT_ABORT ON
GO
BEGIN TRAN
INSERT INTO t2 VALUES (4)
INSERT INTO t2 VALUES (5) /* Foreign key error */
INSERT INTO t2 VALUES (6)
COMMIT TRAN
GO
/* Select shows only keys 1 and 3 added.
Key 2 insert failed and was rolled back, but
XACT_ABORT was OFF and rest of transaction
succeeded.
Key 5 insert error with XACT_ABORT ON caused
all of the second transaction to roll back. */
SELECT *
FROM t2
GO
DROP TABLE t2
DROP TABLE t1
GO
begin trans
insert ....
insert ....
.....
commit trans
怎么查询数据库在执行哪个sql
可以使用SQL跟踪功能,可以查询到数据当前执行的内容
sql 中 updata 语句,如何执行连续的内容
update tbl set qty ='1' where pno='P120308001' and no in('101','102','103','104','105','106','107','108','109');
mssql 存储过程中循环如何写,在循环中用什么语句跳出循环呢,在线等_百 ...
循环使用WHILE 比如 DECLARE @I INT SET @I=0 WHILE @I<10 BEGIN PRINT @I SET @I=@I+1 END 跳出循环有主要有2种 BREAK和RETURN 比如 DECLARE @I INT SET @I=0 WHILE @I<10 BEGIN PRINT @I BREAK END 这样就跳出循环了,也可以换成RETURN,RETURN会结束整个批查询的执行,BREAK仅仅跳出...
sql语言中提供了哪些数据控制的语句
SQL中的控制语句:1、IF语句 2、While语句 3、GOTO语句(SQL2000版本或之前版本,在SQL2005以后不建议使用)4、TRY语句(SQL2005版本或以后版本)5、GRANT(授权)语句 6、REVOKE(收回)语句,等等。
linux执行sql
Linux下如何运行sql脚本?一般以 !\/bin\/sh 开头(不是必须要写,但一定要单独一行),指定执行这个脚本的shell程序(也可以用#!\/bin\/zsh或其他),然后就是堆命令了。Linux的shell脚本支持很多功能,加上Linux高度模块化的命令,完全可以用shell脚本写出复杂的程序。以上只是简单介绍如何开始写shell脚本,...
关于:sql2008视图,,想连续执行 drop view v create view v as...
你先选中 drop view v 执行 然后再选中 create view v as select * from a 执行 ---补充--- 你是要在.bat下执行吗?drop view v go create view v as select * from a go 这样
为什么我连续执行insert语句报错:ORA-00911:无效字符
insert into t2 values('4','aaa');insert into t2 values('5','bbb');insert into t2 values('6','ccc');执行sql>;@e:\\c.sql可以插入3行。同样的语句在sql里直接执行 SQL>; r 1 insert into t2 values('7','aa');2 insert into t2 values('8','bb');3* insert into t2...
sqlserver2005新建查询不能连续执行命令,怎么解决?
你自己说的已经很清楚了。数据库中已存在名为 'student' 的对象 有了就不创建了呗,加入一些额外指令就可以了!如果不存在就创建student表。IF NOT EXISTS (SELECT NULL FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[student]') AND type in (N'U'))BEGINcreate table student ( ...
一个关于查询连续2次为负数的 SQL语句
select t9.name, t9.`成绩` as `最后一批成绩`,t8.`成绩` as `上一批成绩` from (select t3.*,t5.`成绩` from (select a3.name,max(`date`) as date2 from atest as a3 where `成绩` <0 and a3.date not in (SELECT max( date ) AS date FROM atest WHERE `成绩` <0 ...
如何查看SQL Server2000执行过的SQL语句
SQLServer事件探查器可以完整记录SQL服务器执行过的SQL语句以及存储过程等 下面是SQLServer事件探查器的使用方法:1. 打开SQL Server 企业管理器。2. 从“工具”菜单选择“事件探查器”。3. 当“事件探查器”主界面打开后,从“文件”菜单选择“新跟踪”。4. 这时候,SQL Server事件探查器会提示你连接到...
南姜艾氟: 工具/材料:Navicat For Mysql. 1、首先在桌面上,点击“Navicat For Mysql”图标. 2、然后在该界面中,点击“新建查询”按钮. 3、之后在该界面中,输入多条SQL语句. 4、接着在该界面中,点击上方“执行”按钮. 5、最后在该界面中,显示多条SQL语句执行成功.
石狮市13013873410: 数据库操作中如何批量执行多个sql文件 - ?
南姜艾氟: Oracle批量执行SQL文件 1:运行cmd进入命令行界面2:进入到存放批量sql的文件夹下面3:输入命令 sqlplus 数据库名/密码@数据库 按回车键4:输入spool 指定路径:\a.log 按回车键 (此步骤的主要作用就是追踪批量执行sql的日志,路径随便...
石狮市13013873410: 多条sql语句同时执行,返回的数据源问题 - ?
南姜艾氟: 应该没问题.例如 string cmd = "select * from table1;select * from table2;select * from table3"; System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(cmd); System.Data.DataSet ds = new DataSet(); da.Fill(ds); ...
石狮市13013873410: oracle怎么不能同时执行多条sql语句 - ?
南姜艾氟: 多个线程发过去,才能多条语句并发执行.单线程向or服务器发sql指令的话,就应该是按顺序进行,否则很多sql的执行都会乱套,比如还没建立表就开始追加数据什么的.也就是说,要并发执行sql语句,请使用多个客户端向服务器发送sql指令,或单个客户端中多线程向服务器发送sql指令.也可以用定时事务来做到多个sql并发执行.
石狮市13013873410: Access多条SQL语句可不可以同时执行? - ?
南姜艾氟: 同时执行是可以的. 不过你需要创建或引用访问数据库. 首先,你必须有自己的数据库,这没什么好说的.在互联网上有很多网站,你可以建立一个或使用别人的xx.accdb文件(我是别人的)或者添加一个按钮. 创建->空白表格,在图形界面中,拖动一个按钮到界面(有许多不同的按钮,选择杂项,然后取消). 然后选择view->设计视图,然后右键单击该按钮,选择该属性,然后在右边出现一个属性表.找到单击,单击后面的省略号按钮,选择代码生成器,并输入编程接口.随后在完成上述步骤的时候,然后你就可以写你要执行的一系列代码了.
石狮市13013873410: oracle 如何连续执行多条sql 语句?
南姜艾氟: 在语句和语句之间加分号就可以了啊.比如: select * from table1; select * from table2; ....
石狮市13013873410: 怎样才能连续执行两条sql语句 - ?
南姜艾氟: 中间加个分号 select * from table1; select * from table2;
石狮市13013873410: 我想问一下,Java连接数据库后,想连续执行几条SQL语句怎么做?谢谢啦~ - ?
南姜艾氟: Connection con=.............; //这里是取得连接代码,省略 PrepareStatment ps=null; String sql1="select * from test1"; String sql2="update test1 set xxx=1 "; ps=con.prepareStatement(sql1) ; ps.executeQuery(sql1); //(执行第一个SQL) ps....
石狮市13013873410: 用vb连接access数据库以后,如何一次性执行多条sql语句 - ?
南姜艾氟: 使用ACCESS查询对象是无法一次运行多个SQL语句的,但是通过ACCESS VBA代码可以实现一次运行多个SQL语句.下面是具体实现方案;1)新建一个ACCESS窗体,窗体添加一个命令按钮;2)编写按钮单击事件过程 Private Sub ...
石狮市13013873410: 求救!!怎样在java的jdbc中连续的执行多条SQL语句???急急.... - ?
南姜艾氟: Statement有一个子类,PreparedStatement,专门用来执行多条结构相同的sql语句. 例子: 已得到一个连接引用connection 表hh 有 name varchar2的,id number(4) 型的. String sql=“insert into hh values(?,?) PreparedStatement pre=...