Tag: sqlcmd

使用SQLCMD的PostDeployment.sql脚本中的条件逻辑

我正在使用SQL 2008数据库项目(在Visual Studio中)来pipe理我的项目的模式和初始testing数据。 atabase项目使用后期部署,其中包含许多使用SQLCMD“:r”语法的其他脚本。 我希望能够有条件地包含某些基于SQLCMDvariables的文件。 这将使我可以在我们每晚构build中多次运行项目,以使用不同的数据configuration(对于多租户系统)来设置各种版本的数据库。 我已经尝试了以下内容: IF ('$(ConfigSetting)' = 'Configuration1') BEGIN print 'inserting specific configuration' :r .\Configuration1\Data.sql END ELSE BEGIN print 'inserting generic data' :r .\GenericConfiguration\Data.sql END 但是我得到一个编译错误: SQL01260:发生了一个致命的分析器错误:Script.PostDeployment.sql 有没有人看到这个错误,或设法configuration他们的postdeployment脚本是灵活的这种方式? 还是我完全用错误的方式来解决这个问题? 谢谢,罗布 PS我也试着改变这个,所以文件的path是一个variables, 类似于这篇文章 。 但是这给了我一个错误,说道路是不正确的。

有没有办法在命令行中抑制SQLCMD中的“x rows affected”?

有没有办法在命令行中抑制SQLCMD中的“x rows affected”? 我正在运行一个MSBuild脚本,不希望它堵塞我的生成服务器上的日志。 我宁愿不必在每个脚本中添加“SET NOCOUNT ON”,所以如果有一种方法可以从命令行执行,那就太棒了。

如何正确使用SSDT和Visual Studio 2012数据库项目pipe理数据库部署?

我正在研究阶段试图在现有的小型项目上采用2012年数据库项目。 我是C#开发人员,而不是DBA,所以我不是特别stream利的最佳实践。 我一直在寻找谷歌和stackoverflow几个小时,但我仍然不知道如何正确处理一些关键的部署scheme。 1)在几个开发周期中,如何pipe理我的数据库的多个版本? 如果我在我的数据库的v3上有一个客户端,并且我想将其升级到v8,我该如何pipe理它? 我们目前为我们产品的每个版本pipe理手工架构和数据迁移脚本。 我们是否还需要单独做这件事,或者是否有新的模式支持或取代这个模式? 2)如果模式的变化需要数据移动,那么处理这个问题的最好方法是什么? 我假定Pre-Deployment脚本中有一些工作用于保存数据,然后Post-Deploy脚本将它放回正确的位置。 这是它的方式还是有更好的? 3)对于如何更好地使用这些新技术的任何其他build议或指导也非常感谢! 更新:自从我最初提出这个问题以来,我对这个问题的理解有所增加,而当我提出一个可行的解决scheme时,这并不是我所希望的解决scheme。 这里是我的问题的重新说明: 我遇到的问题纯粹是与数据有关。 如果我在我的应用程序的第一版上有一个客户端,并且我想将它们升级到我的应用程序的第五版,那么如果他们的数据库没有数据,我就不会遇到问题。 我只是简单地让SSDT智能地比较模式并一次性迁移数据库。 不幸的是客户有数据,所以并不那么简单。 架构从我的应用程序的版本1更改为版本2到版本3(等)所有影响数据。 我目前的数据pipe理策略要求我维护每个版本升级的脚本(1到2,2到3等)。 这可以防止我直接从我的应用程序版本1到版本5,因为我没有数据迁移脚本直接去那里。 为每个客户创build自定义升级脚本或者pipe理从每个版本到每个更高版本的升级脚本的前景是指数级无法pipe理的。 我所希望的是,SSDT能够实现某种策略,使事物的数据pipe理更容易,甚至可以像事物的模式一样简单。 我最近使用SSDT的经验并没有给我这样一个存在的策略的希望,但我希望有不同的发现。

我如何将自己的pipe理员权限授予本地SQL Server实例?

我安装了SQL Server 2008 R2到我的本地机器。 但是,由于权限(或缺less),我无法创build新的数据库。 “拒绝创build数据库权限” 所以,我试图将pipe理权限分配给我当前的login “用户没有执行此操作的权限。” 我也尝试创build一个新的login,将有pipe理员权限,但没有运气。 我如何授予自己的pipe理权限,以便我可以创build一个数据库? 我可以重新安装,但我不喜欢。

如何将SQL Server 2005查询导出到CSV

我想将一些SQL Server 2005数据导出为CSV格式(以逗号分隔)。 我可以想到很多复杂的方法来做到这一点,但是我想以正确的方式来做。 我已经看了bcp,但是我不知道如何把引号放在字段的周围(除了将它们连接到字段值,这是丑陋的)。 我想我可以用sqlcmd和-o来做,但是出于同样的原因,这看起来很丑。 有一个bcp的方式来做到这一点? 有没有合理的sqlcmd方法来做到这一点? 在pipe理工作室中是否有一些非常简单的实用工具,我只能忽略它们?

如何使用sqlcmd从SQL Server将数据导出为CSV格式?

我可以很容易地将数据转储到一个文本文件,如: sqlcmd -S myServer -d myDB -E -Q "select col1, col2, col3 from SomeTable" -o "MyData.txt" 但是,我已经查看了SQLCMD的帮助文件,但没有看到专门针对CSV的选项。 有没有办法使用SQLCMD将表中的数据转储到CSV文本文件?