首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >sqlps事务问题

sqlps事务问题
EN

Stack Overflow用户
提问于 2015-02-16 23:12:57
回答 1查看 181关注 0票数 2

我编写了一个使用sqlps部署SSAS表格多维数据集的脚本。在部署之后,我需要在多维数据集上执行一些操作,但如果我尝试访问它,我会收到一条消息,指出该多维数据集不存在。但事实上,如果我将操作拆分为两个脚本(deploy -> exit sqlps -> new sqlps session),它就可以工作(出于现在无关紧要的原因,我不能这么做)。

似乎sqlps会话没有看到它刚刚部署的多维数据集。我想知道是否有可以运行的刷新命令,或者是否可以在“读取未提交”状态下运行sqlps。

EN

回答 1

Stack Overflow用户

发布于 2015-03-06 00:18:50

您是否使用支持cmdlet的PowerShell Transactions?看起来只有在你的脚本用完后才会提交事务。

尝试将部署逻辑拆分为两个事务:创建多维数据集和需要执行的其他操作。对于每个部分,您都应该使用它自己的事务,如下所示:

代码语言:javascript
运行
复制
Start-PSTransaction
// logic
Complete-PSTransaction

如果需要以编程方式访问事务,则应在PowerShell中使用TransactionScope模拟,即Cmdlet的CurrentPsTransaction属性,如下所示:

代码语言:javascript
运行
复制
using(CurrentPsTransaction)
{
   ... // Perform transactional work here
}

... // Perform non-transacted work here

using(CurrentPsTransaction)
{
   ... // Perform more transactional work here
}

更新:

您可以使用声明打开事务吗?

为事务开发- Cmdlet和提供者声明Cmdlet声明它们支持事务的方式与声明它们支持ShouldProcess的方式类似:

Cmdlet(“Get”,“Process”,SupportsTransactions=True)

提供者通过ProviderCapabilities标志声明他们对事务的支持:

CmdletProvider(“注册表”,ProviderCapabilities.Transactions)

关于Powershell中的隔离级别的更多信息:

TransactionScope with IsolationLevel set to Serializable is locking all SQL SELECTs

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28544492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档