标签: sqlcmd

-S使用sqlcmd时的未知选项

当我从带有SQL Server 2008的Windows XP中的DOS窗口执行以下命令时出现错误.-S是指定服务器名称的选项.

错误:Sqlcmd:' - S':未知选项.

sqlcmd -S localhost -d databasename -i C:\ files\somefile.sql -E

sqlcmd sql-server-2008

3
推荐指数
1
解决办法
4110
查看次数

sqlcmd来自命令行,带有sql身份验证

SQLCMD默认使用Windows身份验证.根据MSDN文档,您可以通过向命令添加-U参数然后使用用户名来更改它.

问题在于密码.如果密码为空,有没有办法访问sql server?

sqlcmd -U admin
password:
Run Code Online (Sandbox Code Playgroud)

每当我尝试这个并按Enter键(表示密码为空字符串)时,我会收到一条消息,说明登录失败.

有什么建议?谢谢

sql command-line sqlcmd

3
推荐指数
1
解决办法
2万
查看次数

运行在管理工作室中正常运行的脚本时出现SQLCMD语法错误

当我select '$(''test'')'在SQL Management Studio 2008中运行它时,它返回$('test')

当我sqlcmd -S SERVER -E -d DATABASE -q "select $(''test'')"在命令行上运行它返回Sqlcmd: Error: Syntax error at line 1 near command '''.

如果我删除美元符号就行了."$"是一个特殊角色吗?

这是一个sqlcmd错误吗?如何更改脚本以获得所需的结果.

sql-server sqlcmd sql-server-2008

3
推荐指数
1
解决办法
6759
查看次数

从SQLCMD执行CREATE VIEW和ALTER VIEW

我正在尝试使用sql cmd执行包含以下内容的sql文件.

sqlcmd -S localhost\dbInstance -i Sample.sql -v  filepath="C:\Sql\"
Run Code Online (Sandbox Code Playgroud)

Sample.sql内容:

USE Sample_db
GO
BEGIN
 BEGIN TRANSACTION; 
  BEGIN TRY
   CREATE VIEW [dbo].[Test_View]
   AS SELECT * from Sample_table;   

   ALTER VIEW [dbo].[Sample_View]   
   AS SELECT * FROM table_9;        

   ALTER TABLE [Sample_Table_2] ADD Col_4 VARCHAR(20);

  END TRY 
 BEGIN CATCH     
  SELECT  ERROR_NUMBER() AS ErrorNumber         ,
    ERROR_SEVERITY() AS ErrorSeverity         ,
    ERROR_STATE() AS ErrorState         ,
    ERROR_PROCEDURE() AS ErrorProcedure         ,
    ERROR_LINE() AS ErrorLine         ,
    ERROR_MESSAGE() AS ErrorMessage;     

  IF @@TRANCOUNT > 0         
   ROLLBACK TRANSACTION; 

 END CATCH;

 IF @@TRANCOUNT > 0 …
Run Code Online (Sandbox Code Playgroud)

t-sql sqlcmd

3
推荐指数
1
解决办法
4434
查看次数

在另一个变量的SET语句中使用一个变量

我正在编写一个批处理脚本,用于SQLCMD将表从数据库服务器转储到本地计算机上.为此,我构造了查询,以便我可以灵活地指定表名.根据表名构造查询,然后在SQLCMD命令中使用该表名.用于构造查询的代码段如下所示:

@echo off
SET tableName = testDB
SET dumpTable="SET NOCOUNT ON; SELECT * FROM %tableName%"
ECHO %dumpTable%
Run Code Online (Sandbox Code Playgroud)

在运行此脚本时,我得到以下输出

"SET NOCOUNT ON; SELECT * FROM "
Run Code Online (Sandbox Code Playgroud)

tableName变量未在set语句中替换.我应该如何修改我的脚本来实现此输出:

"SET NOCOUNT ON; SELECT * FROM testDB"
Run Code Online (Sandbox Code Playgroud)

batch-file sqlcmd

3
推荐指数
1
解决办法
3366
查看次数

SQLCMD 模式:环境变量语法

我认为在 T-SQL 运行时设置 SSMS 输出文件路径的最佳方法是使用 SQLCMD 模式。如何在代码中使用环境变量(例如 %systemroot%)?以下炸弹:

:set mypath %systemroot%
:out $(mypath)"\the_result.txt"
select * from myTab 
Run Code Online (Sandbox Code Playgroud)

也许还有: Query.sql 的文件夹是否有环境变量与此代码,或工作文件夹?谢谢!

t-sql ssms sqlcmd environment-variables

3
推荐指数
1
解决办法
6818
查看次数

找不到为:r命令指定的文件

在SQLCMD模式下的MS SQL Server Management Studio中,我使用以下脚本来运行另一个脚本:

:setvar path "C:\workspace\scripts\scripts\"

:r $(path)'VERSIONS.sql'
Run Code Online (Sandbox Code Playgroud)

但是它得到了这个错误:

发生致命的脚本错误。找不到为:r命令指定的文件。

VERSIONS.SQL绝对在指定的文件夹中。为什么在运行该脚本时不起作用?

编辑:要注意的事情。我运行该脚本所针对的数据库不在本地计算机上。(我希望这不是不起作用的原因)

sql sql-server ssms sqlcmd sql-server-2008

3
推荐指数
1
解决办法
3175
查看次数

SQLCMD 只返回列的前 256 个字符

FOR /f "delims=" %%a IN ('"%SQLCMD%" -E -S %Server% -d %DestDb% -h-1 -i GetResult.sql') do (
  SET Result=%%a
)
ECHO "%Result%"
Run Code Online (Sandbox Code Playgroud)

%Result% 设置为实际结果的前 256 个字符。

有没有办法获得查询的整个输出?

windows cmd batch-file sqlcmd

3
推荐指数
1
解决办法
1209
查看次数

Ubuntu 18.04 上的 SQL Server 操作系统错误 2(系统找不到指定的文件。)

我正在尝试使用以下命令备份 sql server 上的数据库:BACKUP DATABASE [mydb] TO DISK = N'/path/to/file.bak' WITH NOFORMAT, NOINIT, NOSKIP, REWIND, NOUNLOAD, STATS = 10

如果路径/var/opt/mssql/data/file.bak无法在任何其他位置创建备份,则它会创建备份。这是权限问题吗?有没有人遇到过同样的情况?提前致谢。

sql-server ubuntu sqlcmd

3
推荐指数
1
解决办法
2201
查看次数

sqlcmd.exe - 共享内存提供程序:管道的另一端没有进程

我已经阅读了许多关于该错误的帖子和文章:

共享内存提供程序:管道的另一端没有进程。通信链路故障。

...包括这些:

错误消息:(提供程序:共享内存提供程序,错误:0 - 管道的另一端没有进程。)

https://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a-connection-to-sql-服务器-microsoft-sql-server-error/

我可以轻松且始终通过 SSMS 进行连接,包括混合模式和 Windows 身份验证。但是每当我尝试通过 运行 sql 脚本时sqlcmd.exe,都会出现上面显示的错误。

这是我从 Windows 命令外壳运行的内容:

"C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\sqlcmd.exe" -S localhost -U sa -P myPassword -i "F:\<mypath>\<myfile>.sql"
Run Code Online (Sandbox Code Playgroud)

这是我尝试/验证的内容:

  1. 我在跑步 SQL Server version 14.0在 Windows 10 上。
  2. 启用了混合模式身份验证,我可以从 SSMS 连接。
  3. 我试过指定127.0.0.1而不是localhost在我的 cmd 行中。
  4. 共享内存协议已启用。
  5. 命名管道协议已启用。
  6. TCP/IP 已启用。
  7. 我的 SQL Server 服务正在运行 - 我可以从 SSMS 连接。
  8. 我在 Windows 防火墙中打开了入站和出站端口 1433,我的防火墙允许 SQL Server(作为应用程序)。(即使我关闭防火墙,我仍然会遇到同样的错误。)
  9. 远程连接已启用。
  10. SQL Server Browser 服务已启用并正在运行。
  11. SQL Server 代理已启用并正在运行(尽管我认为这没有必要)。
  12. 我已经重新启动了 …

sql-server sqlcmd

3
推荐指数
1
解决办法
3309
查看次数