![](/img/trans.png)
[英]How to run a python script in Java program using Docker container?
[英]how to run ms sql script using java program
我有这样的脚本:
USE master;
GO
--Delete the TestData database if it exists.
IF EXISTS(SELECT * from sys.databases WHERE name='TestData')
BEGIN
DROP DATABASE TestData;
END
--Create a new database called TestData.
CREATE DATABASE TestData;
使用此代码:
BufferedReader in = new BufferedReader(new FileReader("resources/test.sql"));
String str;
StringBuffer sb = new StringBuffer();
while ((str = in.readLine()) != null) {
sb.append(str + "\n ");
}
in.close();
statement.executeUpdate(sb.toString());
我收到错误:GO 附近的语法不正确。
这是错误的,您不应该以这种方式执行 SQL 脚本。 而是将整个 SQL 脚本包装在一个stored procedure
并从您的应用程序代码中调用该过程。
CREATE PROCEDURE usp_DBAction
AS
BEGIN
--Delete the TestData database if it exists.
IF EXISTS(SELECT * from master.sys.databases WHERE name='TestData')
BEGIN
DROP DATABASE TestData;
END
--Create a new database called TestData.
CREATE DATABASE TestData;
END
GO 不是 Transact-SQL 语句,您将 GO 传递给 SQL-Server 以执行它。 https://msdn.microsoft.com/en-us/library/ms188037(v=sql.110).aspx
如果基于 ODBC 或 OLE DB API 的应用程序尝试执行 GO 命令,则会收到语法错误。 SQL Server 实用程序从不向服务器发送 GO 命令。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.