sqlserver2008如何实现 跨数据库 复制,查询? 跨数据库查询用 jpa 怎么实现? 求高手赐教?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver2008如何实现 跨数据库 复制,查询? 跨数据库查询用 jpa 怎么实现? 求高手赐教?相关的知识,希望对你有一定的参考价值。
参考技术A opendatasource('sqloledb,'Data Source=服务器地址;UserID=sa;Password=pass@word1 ').数据库名字.dbo.[表名] 这是跨服务器的调用,如不是不是跨服务器,直接数据库名.dbo.表名追问用jpa怎么实现啊?
参考技术B 我只知道sql 跨库 操作先在当前服务器的数据添加 链接服务器,如设置名为[dbserver]
select * from [dbserver].[数据库名].dbo.[表名]追问
用jpa怎么实现啊?
本回答被提问者采纳 参考技术C 在查询语句中加入数据库的名字就好了。。。。突变后,如何跨视图更新受影响的数据? [复制]
【中文标题】突变后,如何跨视图更新受影响的数据? [复制]【英文标题】:After a mutation, how do I update the affected data across views? [duplicate] 【发布时间】:2017-03-01 11:14:21 【问题描述】:我有 getMovies
查询和 addMovie
突变工作。当addMovie
发生时,我想知道如何最好地更新“编辑电影”和“我的个人资料”中的电影列表以反映这些变化。我只需要一个一般性/高级别的概述,或者如果它很简单,甚至只是一个概念的名称,关于如何实现这一点。
我最初的想法只是在我的 Redux 商店中保存所有电影。突变完成后,它应该返回新添加的电影,我可以将其连接到我商店的电影。
在“添加电影”之后,它会弹出回到“编辑电影”屏幕,您应该可以在其中看到新添加的电影,然后如果您返回“我的个人资料”,它也会在那里。
有没有比将它全部保存在我自己的 Redux 商店中更好的方法来做到这一点?有什么我不知道的阿波罗魔法可以为我处理这个更新吗?
编辑:我发现了updateQueries
的想法:http://dev.apollodata.com/react/cache-updates.html#updateQueries 我想这就是我想要的(如果这不是正确的方法,请告诉我)。这似乎比使用我自己的 Redux 商店的传统方式更好。
// this represents the 3rd screen in my picture
const AddMovieWithData = compose(
graphql(searchMovies,
props: ( mutate ) => (
search: (query) => mutate( variables: query ),
),
),
graphql(addMovie,
props: ( mutate ) => (
addMovie: (user_id, movieId) => mutate(
variables: user_id, movieId ,
updateQueries:
getMovies: (prev, mutationResult ) =>
// my mutation returns just the newly added movie
const newMovie = mutationResult.data.addMovie;
return update(prev,
getMovies:
$unshift: [newMovie],
,
);
,
,
),
),
)
)(AddMovie);
addMovie
突变后,这会正确更新“我的个人资料”中的视图,因为它使用了 getMovies
查询(哇)!然后我将这些电影作为道具传递到“编辑电影”中,那么我该如何在那里更新呢?我应该让他们都使用getMovies
查询吗?有没有办法将 getMovies
的新结果从商店中拉出,这样我就可以在“编辑电影”中重复使用它而无需再次进行查询?
EDIT2: 用getMovies
查询容器包装MyProfile
和EditMovies
似乎工作正常。在addMovie
之后,由于updateQueries
在getMovies
上,它在两个地方都有更新。它也很快。我认为它正在被缓存?
一切正常,所以我想这只是一个问题:这是最好的方法吗?
【问题讨论】:
对于阿波罗魔法,显示一些代码.. 当您说“这是最好的方法吗?”由于它是基于意见的,您可能会关闭您的问题。但是,我来这里是为了根据标题中的问题写下您提出的答案(顺便说一句,标题写得很好!)所以我会这样做;) 【参考方案1】:Apollo 客户端仅在更新突变时更新存储。因此,当您使用创建或删除突变时,您需要告诉 Apollo 客户端如何更新。我原以为商店会自动更新,但它没有……
在您进行突变后,我已经使用resetStore
建立了一个解决方法。
您在进行突变后重置商店。然后当你需要查询时,store 是空的,所以 apollo 重新获取新数据。
代码如下:
import withApollo from 'react-apollo'
...
deleteCar = async id =>
await this.props.deleteCar(
variables: where:
id: id
,
)
this.props.client.resetStore().then(data=>
this.props.history.push('/cars')
)
...
export default compose(
graphql(POST_QUERY,
name: 'carQuery',
options: props => (
fetchPolicy: 'network-only',
variables:
where:
id: props.match.params.id,
,
),
),
graphql(DELETE_MUTATION,
name: 'deleteCar',
),
withRouter,
withApollo
)(DetailPage)
完整代码在这里:https://github.com/alan345/naperg
破解前的错误resetStore
【讨论】:
【参考方案2】:标题中问题的答案是
使用updateQueries
“通知”驱动其他视图的查询数据已更改(如您所见)。
这个话题在 react-apollo slack 频道中得到了持续的讨论,这个答案是我所知道的共识:没有明显的替代方案。
请注意,您可以更新多个查询(这就是名称为复数的原因,并且参数是一个对象,其中包含与所有需要更新的查询的名称相匹配的键)。
正如您可能猜到的那样,这种“模式”确实意味着您在设计和使用查询时需要小心谨慎,以便在设计突变时让生活变得轻松和可维护。更常见的 queires 意味着您在突变updateQueries
操作中错过一个的机会更少。
【讨论】:
谢谢!是的,当我发现updateQueries
时,我对它的运行效果感到非常惊讶,但作为一个新手,当事情实际运行时,我不禁感到有点不舒服,尤其是在尖端技术领域!你对我的附带问题有什么想法吗?最初,只有“我的个人资料”有 getMovies
查询,而我只是将电影作为道具传递给“编辑电影”。当然,这意味着在突变之后,它只会更新getMovies
所在的位置......所以只在“我的个人资料”上。正在将 getMovies
添加到“编辑电影”中,所以它也会在那里更新,在这里做正确的事情吗?
这就是我在“仔细设计和使用查询”中提到的:)我认为答案是“是的”。请注意,其他选项包括将这两个组件都放在另一个容器中,并执行查询,并将移动列表作为道具传递。这只是一个选项,如果它在 UI 设计中有意义(在我的应用程序看起来就像你的一样,“编辑电影”是一种模式,因此可以从“我的个人资料”中获取道具,并在“我的个人资料”容器中更新确实...但是模态通常不是一个好主意:O)。也许在apollostack.slack.com/archives/react-apollo 见到你
来自官方文档:“我们建议使用update
而不是updateQueries
。updateQueries 将在下一版本的 Apollo Client 中删除。” src以上是关于sqlserver2008如何实现 跨数据库 复制,查询? 跨数据库查询用 jpa 怎么实现? 求高手赐教?的主要内容,如果未能解决你的问题,请参考以下文章
Sql Server 2008如何检查表中是不是存在列? [复制]