我可以很容易地将数据转储到文本文件中,例如:
sqlcmd -S myServer -d myDB -E -Q "select col1, col2, col3 from SomeTable"
-o "MyData.txt"
Run Code Online (Sandbox Code Playgroud)
但是,我查看了帮助文件,SQLCMD
但没有看到专门针对CSV的选项.
有没有办法使用表格将数据从表格转储到CSV文本文件SQLCMD
?
我将SQL Server 2008 R2安装到本地计算机上.但是,由于权利(或缺乏),我无法创建新的数据库.
"创建DATEABASE PERMISSION DENIED"
所以,我试图将管理员权限分配给我当前的登录
"用户无权执行此操作."
我还尝试创建一个具有管理员权限但没有运气的新登录.如何授予自己管理员权限以便创建数据库?我可以重新安装,但我不愿意.
有没有办法从命令行中抑制SQLCMD中的"x行受影响"?
我正在运行一个MSBuild脚本,并不希望它阻塞我的构建服务器上的日志.
我宁愿不必在每个脚本中添加"SET NOCOUNT ON",所以如果有办法从命令行执行,那就太棒了.
我想将一些SQL Server 2005数据导出为CSV格式(用逗号分隔引号).我可以想到很多复杂的方法,但我想以正确的方式做到这一点.我看过bcp,但我无法弄清楚如何在字段周围添加引号(除了将它们连接到字段值,这很难看).我想我可以用sqlcmd和-o做到这一点,但出于同样的原因,这似乎很难看.
有没有bcp方式来做到这一点?
有合理的sqlcmd方法吗?
管理工作室内置了一些非常简单的实用工具吗?
我正处于研究阶段,试图在现有的小项目上采用2012数据库项目.我是C#开发人员,而不是DBA,所以我对最佳实践并不是特别流利.我一直在搜索谷歌和stackoverflow几个小时,但我仍然不知道如何正确处理一些关键的部署方案.
1)在几个开发周期的过程中,如何管理我的数据库的多个版本?如果我的数据库v3上有客户端,并且我想将它们升级到v8,我该如何管理它?我们目前为每个版本的产品管理手工制作的架构和数据迁移脚本.我们是否还需要单独执行此操作,或者新范例中是否有某些内容支持或替换此内容?
2)如果架构以需要移动数据的方式更改,那么处理此问题的最佳方法是什么?我假设预部署脚本中有一些工作要保留数据,然后Post-Deploy脚本会将其放回正确的位置.这是它的方式还是有更好的东西?
3)对如何最好地使用这些新技术的任何其他建议或指导也非常感谢!
更新:自从我最初提出这个问题以来,我对这个问题的理解有所增加,当我想出一个可行的解决方案时,它并不是我希望的解决方案.这是我的问题的重写:
我遇到的问题纯粹与数据有关.如果我的应用程序版本1上有一个客户端,并且我想将它们升级到我的应用程序的第5版,那么如果他们的数据库没有数据,那么我就没有问题.我只是让SSDT智能地比较模式并一次性迁移数据库.不幸的是,客户有数据,所以它并不那么简单.架构从我的应用程序的版本1更改为版本2到版本3(等)所有影响数据.我目前管理数据的策略要求我为每个版本升级维护一个脚本(1到2,2到3等).这使我无法直接从我的应用程序的版本1转到版本5,因为我没有数据迁移脚本直接在那里.为每个客户端创建自定义升级脚本或管理从每个版本到每个更高版本的升级脚本的前景都是指数级无法管理的.我所希望的是,SSDT能够实现某种策略,使得管理数据方面变得更容易,甚至可能像架构方面那样容易.我最近使用SSDT的经历并没有让我对这种策略存在任何希望,但我希望能找到不同的方法.
sql sqlcmd database-project visual-studio-2012 sql-server-data-tools
我正在使用SQL 2008数据库项目(在visual studio中)来管理我的项目的模式和初始测试数据.atabase项目使用后部署,其中包括使用SQLCMD的":r"语法的许多其他脚本.
我希望能够有条件地包含基于SQLCMD变量的某些文件.这将允许我使用我们的夜间构建多次运行项目,以使用不同的数据配置(对于多租户系统)设置各种版本的数据库.
我尝试过以下方法:
IF ('$(ConfigSetting)' = 'Configuration1')
BEGIN
print 'inserting specific configuration'
:r .\Configuration1\Data.sql
END
ELSE
BEGIN
print 'inserting generic data'
:r .\GenericConfiguration\Data.sql
END
Run Code Online (Sandbox Code Playgroud)
但是我收到一个编译错误: SQL01260:发生致命的解析器错误:Script.PostDeployment.sql
有没有人看到过这个错误或设法将他们的postdeployment脚本配置为这样灵活?还是我完全以错误的方式解决这个问题?
谢谢,罗布
PS我也尝试改变它,以便文件的路径是一个变量,类似于这篇文章.但这给了我一个错误,说路径不正确.
我刚刚安装了SQL Server 2008,我想使用命令编辑器来执行查询.
为此,我打开了命令提示符,然后输入
Sqlcmd -S Serverinstance
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误说:
命名管道提供程序:无法打开与SQL Server的连接[53].
Sqlcmd:erreur:Microsoft SQL Server Native Client 10.0:建立与SQL Server的连接时发生了与网络相关或特定于实例的错误.找不到服务器或无法访问服务器.检查实例名称是否正确以及SQL Server是否配置为允许远程连接.有关详细信息,请参阅SQL Server联机丛书..
Sqlcmd:erreur:Microsoft SQL Server Native Client 10.0:登录超时已过期
我应该怎么做才能将它连接到服务器以便继续?
谢谢你:D.
我正在研究一个正在调用的Java程序sqlcmd
.它在安装了SQL Server的计算机上完美运行,但在没有安装SQL Server的计算机上完全没有.我想在我的jar中包含必要的exe和dll文件来运行此命令.谁知道我需要哪些?我已经包含了batchparser90.dll,sqlcmd.exe和sqlcmd.dll.它仍然无法正常工作.
任何建议表示赞赏.提前致谢!
如何从此sqlcmd
命令的结果集中抑制连字符(------------):
C:\temp>sqlcmd -d AdventureWorks -s ";"
-Q "SET NOCOUNT ON SELECT top 5 FirstName, LastName FROM Person.Contact;"
FirstName ;LastName
--------------------------------------------------;----------------------------
Gustavo ;Achong
Catherine ;Abel
Kim ;Abercrombie
Humberto ;Acevedo
Pilar ;Ackerman
C:\temp>
Run Code Online (Sandbox Code Playgroud) 是否可以将参数传递给SQL Server脚本?我有一个创建数据库的脚本.它是使用sqlcmd从批处理文件中调用的.该SQL脚本的一部分如下:
CREATE DATABASE [SAMPLE] ON PRIMARY
( NAME = N'SAMPLE', FILENAME = N'c:\dev\SAMPLE.mdf' , SIZE = 23552KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'SAMPLE_log', FILENAME = N'c:\dev\SAMPLE_log.ldf' , SIZE = 29504KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
Run Code Online (Sandbox Code Playgroud)
我希望能够传递数据库和日志的文件名,这样我就不必硬编码'C:\ dev\SAMPLE.mdf'和'C:\ dev\SAMPLE_log.ldf'.
有没有办法做到这一点?我正在运行Microsoft SQL Server 2008 Express.如果您需要更多信息,请与我们联系.