- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用的是 Apache Tomcat 7.0.41,需要使用官方“com.microsoft.sqlserver.jdbc.SQLServerDriver”驱动程序在 SQL Server 2012 上生成 View 。不幸的是,选择架构似乎存在问题。我尝试了多种方法来实现它,但每次都失败。
奇怪的是,定期创建表不会造成任何麻烦:
CREATE TABLE Defschem.dbo.Formate (
[FormatID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
[Info] [varchar](50) NOT NULL UNIQUE,
[FVal] [float] NOT NULL)
尝试以同样的方式进行 View 。(仅供引用:语句本身和表名都是分开的final Strings
,可以单独更改):
Create View Defschem.dbo.EtiFormatview as
SELECT
...
FROM Defschem.dbo.Formate
...
失败并出现错误:
com.microsoft.sqlserver.jdbc.SQLServerException: 'CREATE/ALTER VIEW' does not allow specifying the database name as a prefix to the object name.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
完全保留数据库名称会将创建的 View 放入“主”数据库中,这并不完全是我想要的。
该错误很常见,http://www.sql-server-helper.com/error-messages/msg-166.aspx建议:
To avoid this error, remove the database name when creating a view: [...] If you need to create a view on another database, change your database first then create the view without the database name:
USE Northwind
GO
CREATE VIEW [dbo].[CustomerCountries]
AS
SELECT DISTINCT [Country]
FROM [dbo].[Customers]
GO
我已经开始了整个 SQL 命令:
"USE " + DATABASENAME + '\n' + "GO " + '\n';
至:
USE Defschem
GO
Create View Defschem.dbo.EtiFormatview as
SELECT
...
FROM Defschem.dbo.Formate
...
它得到错误:
com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near 'GO'.
我不确定我的 '\n 对于 SQL-Server 来说是否不够漂亮...我无法弄清楚为什么语法应该不正确,所以我将整个 SQL 插入到 SQL 中-管理工作室...并且成功了!
我很难理解为什么同一个命令在 Studio 中有效,但在使用 Java 执行时却无效?该命令很简单(我使用常规语句而不是准备好的语句,因为我没有插入任何值并且所有字符串都是最终的):
stat = c.createStatement();
stat.executeUpdate(Info.getUsage()+VIEW);
c.commit();
官方文档(http://msdn.microsoft.com/en-us/library/ms187956.aspx - 请参阅“示例”部分)提到了在 GO SCHEMA 之后使用分号的情况。但更改为:
"USE " + DATABASENAME + ";\n" + "GO " + '\n';
给了我完全相同的错误。离开 '\n 也没有效果。
不久前似乎有人遇到过类似的问题: How can I specify the current schema for sql server in a jboss data source url?
我以前没有使用过 Synonyms,我认为这不是解决我的问题的正确方法。有更优雅的解决方案吗?
谢谢
最佳答案
像 USE
这样的语句从技术上讲可以在 JDBC 中使用。但是您不能使用GO
,因为它不是 SQL Server T-SQL 语法的一部分;它实际上是 SQL Server Management Studio 和许多 SQL Server 脚本工具的一部分。
但是,JDBC 强烈建议不要直接使用影响连接状态的命令(包括其他事务(启动、提交回滚)):
Note: When configuring a
Connection
, JDBC applications should use the appropriate Connection method such assetAutoCommit
orsetTransactionIsolation
. Applications should not invoke SQL commands directly to change the connection's configuration when there is a JDBC method available. (fromjava.sql.Connection
)
如果要切换数据库,可以使用 Connection.setCatalog()
。这样连接就知道它现在已连接到不同的目录。如果您使用 USE
执行此操作,驱动程序可能仍然认为它已连接到初始数据库并执行错误的操作(例如,为错误的数据库缓存元数据等)。
当然,另一个选项在 the answer by Donal 中有描述。 :直接连接到正确的数据库。
关于java - 在指定的MSSQL-Schema中创建 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26225720/
Schema.org中的 priceRange 属性是什么意思? https://schema.org/priceRange 我不明白这是什么意思,我住在哈萨克斯坦,也许我的文化或语言不明确。您能举一
用作引用:https://support.google.com/webmasters/answer/146750?hl=en 您会注意到在“产品”下有一个属性类别,此外页面下方还有一个示例: Too
我对 Doctrine 很陌生。我用 Doctrine 为我自己做了两个小项目,但现在我要为我的客户创建大项目。该项目将有50多个表。有没有办法生成schema.yml?我尝试了 DB Designe
在 Mongoose 模式中,我们可以通过两种方式创建方法 SchemaName.methods.functionName 和 SchemaName.statics.functionName . 静态
我读了这个Google doc .它说我们不使用列表中的产品。 那么对于产品列表(具有多页的类似产品的类别,如“鞋子”),推荐使用哪种模式? 我用这个: { "@context": "htt
我目前在做DBpedia数据集,想通过wikidata实现schema.org和DBpedia的映射。因此我想知道 schema.org 和 wikidata 之间是否存在任何映射。 最佳答案 我认为
如果看一下 Movie在 schema.org 中输入,actor 和 actors 属性都是允许的(actor 取代 actors)。但是 author 和 contributor 属性没有等效项。
我正在尝试将 Vertica 架构从一个物理集群导出和导入到另一个物理集群。我的测试实例有一个集群,我的生产实例有 3 个集群。 我探索了以下选项,但它们仅限于在一个物理 Vertica 实例上移动数
我们有一些餐厅有多个地点或分支机构。我想包含正确的 Schema.org 标记,但找不到任何允许列出多个餐厅的内容。 每家餐厅都有自己的地址、电子邮件、电话和营业时间,甚至可能是“分店名称”。 两个分
我在一个页面中有多个综合评分片段。 有没有办法让其中之一成为默认值?将显示在搜索引擎结果中的那个? 谢谢大家! 更新:该网页本质上是品牌的页面。它包含品牌评论的总评分及其产品列表(每个产品的总评分)。
有谁知道是否可以用另一个 XML 模式验证一个 XML 模式?如果是这样,那里有引用实现吗?我想使用 JAXB 解析模式文档。 最佳答案 当然。大多数时候,您只需将浏览器指向用作 XML 文档 nam
我正在尝试创建 springdoc swagger 文档,我想代表一个具有数据类型 Map 的请求正文以更好的方式为客户提供可读性。但是当我声明 @io.swagger.v3.oas.annotati
当我们创建数据库时会创建一个公共(public)模式,如果我们不指定任何模式,则会在公共(public)模式下创建表。如果您在从数据库中删除公共(public)模式时看到或遇到任何问题,能否告诉我,因
网站的根页面(即 http://example.com/ )的特殊之处在于它是默认的着陆页。它可能包含许多不同的对象类型。 它可能被认为是一个网站,或者一个博客等... 但它是否也应该被标记为给定对象
我网站的产品页面有面包屑导航。 Product 类型没有breadcrumb。 我这样做: "@type": "Webpage", "breadcrumb": {... "mainEntity":
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 1 年前。 社区1年前审
我正在尝试从模式注册表中检索给定 kafka 主题的模式主题版本。我可以使用 client.register(schema-name, schema) 成功发布新版本,但我不确定如何检索版本。我在下面
我有一个地方/本地企业,它有各种字段,可以很好地映射到 schema.org 条目。有一个字段我不知道如何标记。我们有指向该企业社交媒体帐户的链接,例如他们的 Twitter 帐户、Facebook
我在 schema.schema 中有一个 number_of_servers 字段,我需要为其设置一个范围。有什么办法吗? Schema: map[string]*schema.Schema{
在向我的站点添加微数据时,我使用了 schema.org 上的词汇表。 目前,我使用 http://schema.org/SoftwareApplication 来标记软件。由于 schema.org
我是一名优秀的程序员,十分优秀!