'GO' 附近有语法错误
java中sql语句执行有错误,但是打印出语句后在sql管理中没有问题
java中代码如下:
String sqlview="if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[员工考勤卡号-按最新启 用日期]') and OBJECTPROPERTY(id, N'IsView') = 1)"+
"drop view [dbo].[员工考勤卡号-按最新启用日期]" +
"\n"+"GO"+"\n"+
"SET QUOTED_IDENTIFIER ON"+
"\n"+"GO"+"\n"+
"SET ANSI_NULLS ON"+
"\n"+"GO"+"\n"+
"CREATE VIEW dbo.[员工考勤卡号-按最新启用日期]"+"\n"+
" AS "+"\n"+
"SELECT DISTINCT SMT_PersonnelID, SMT_CardSerial, SMT_DateTime, SMT_State"+"\n"+
"FROM dbo.Smart_Card ta"+"\n"+
"WHERE (SMT_DateTime ="+"\n"+
"(SELECT MAX(tb.SMT_DateTime) AS Expr1"+"\n"+
"FROM dbo.Smart_Card AS tb"+"\n"+
"WHERE (tb.SMT_PersonnelID = ta.SMT_PersonnelID)))"+
"\n"+"GO"+"\n"+
"SET QUOTED_IDENTIFIER OFF"+
"\n"+"GO"+"\n"+
"SET ANSI_NULLS ON"+
"\n"+"GO"+"\n"+
;
打印出的语句为:if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[员工考勤卡号-按最新启用日期]') and OBJECTPROPERTY(id, N'IsView') = 1)drop view [dbo].[员工考勤卡号-按最新启用日期]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE VIEW dbo.[员工考勤卡号-按最新启用日期]
AS
SELECT DISTINCT SMT_PersonnelID, SMT_CardSerial, SMT_DateTime, SMT_State
FROM dbo.Smart_Card ta
WHERE (SMT_DateTime =
(SELECT MAX(tb.SMT_DateTime) AS Expr1
FROM dbo.Smart_Card AS tb
WHERE (tb.SMT_PersonnelID = ta.SMT_PersonnelID)))
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
这个打印出来的语句直接复制到sqlserver management中是可以执行的 没有问题
但是eclipse中直接报错:com.microsoft.sqlserver.jdbc.SQLServerException: 'GO' 附近有语法错误。
这个问题怎么解决的呀?
[解决办法]
用;来代替GO吧。好像GO是要换行的。
[解决办法]
把go都去掉吧