如何在java中运行ms sql server脚本?
我正在使用这个代码如何在java中运行ms sql server脚本?,java,sql-server,Java,Sql Server,我正在使用这个代码 BufferedReader in = new BufferedReader(new FileReader(filename.getText())); String str; StringBuffer sb = new StringBuffer(); while ((str = in.readLine()) != null) { sb.append(str + "\n "); } in.close(); Statement stmt = con.createStat
BufferedReader in = new BufferedReader(new FileReader(filename.getText()));
String str;
StringBuffer sb = new StringBuffer();
while ((str = in.readLine()) != null) {
sb.append(str + "\n ");
}
in.close();
Statement stmt = con.createStatement();
stmt.execute(sb.toString());
System.err.println("Script Executed");
但是给出了Exception:com.microsoft.sqlserver.jdbc.SQLServerException:GO附近的语法不正确
查询的一些代码是:
USE [Medico]
GO
/****** Object: User [medico1] Script Date: 02/05/2015 19:19:40 ******/
CREATE USER [medico1] WITHOUT LOGIN WITH DEFAULT_SCHEMA=[dbo]
GO
/****** Object: User [medico] Script Date: 02/05/2015 19:19:40 ******/
CREATE USER [medico] WITHOUT LOGIN WITH DEFAULT_SCHEMA=[dbo]
GO
/****** Object: Table [dbo].[employee] Script Date: 02/05/2015 19:19:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[employee](
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](100) NULL,
[code] [varchar](100) NOT NULL,
[address] [varchar](max) NULL,
[city] [varchar](100) NULL,
[state] [varchar](50) NULL,
[phone] [varchar](50) NULL,
[mob] [varchar](50) NULL,
[email] [varchar](100) NULL,
[enrolldate] [date] NULL,
[qualification] [varchar](100) NULL,
[status] [varchar](100) NULL,
[description] [varchar](max) NULL,
[designation] [varchar](100) NULL,
[etype] [varchar](100) NULL,
[password] [varchar](100) NULL,
[username] [varchar](250) NULL,
[usercode] [varchar](250) NULL,
PRIMARY KEY CLUSTERED
(
[code] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
要从该脚本创建所有必需的对象,请打开
SQLServerManagementStudio
并运行该脚本。这是创建所有对象最安全的方法查询是什么<代码>System.out.println(sb.toString())代码>查询太长。我无法发布。这是您的脚本还是从其他文件复制的?我这样问是因为这些创建表脚本通常在java程序之外运行,以便为程序创建所需的表。此脚本由sql server 2008生成,但不在同一台计算机中。而且它不是完整的脚本。我不能发布所有的代码OK,这是他们用java代码运行脚本文件的任何方式。这是在ms sql server 2008中生成的。因为我必须使用java程序创建所有对象(表),它们有很多表。该脚本文件的大小是多少?您只需要运行此脚本来创建表、键等,还是要从java运行此脚本?