标签: sqlcmd

缺少 SQLCMD 的相对路径功能有哪些解决方法:r?

我不是第一个注意到缺少此功能的人

但我想知道是否有一些有用的解决方法。我想在同一个文件夹中部署一个主脚本和一些依赖脚本。

顺便说一句,Microsoft Connect 上有票吗?

编辑:

锁定于此,似乎等同于在 sqlcmd 模式下运行的脚本是否可以确定其在文件系统中的路径的问题。

第二次编辑:

SO我找到了一种将脚本路径传递到 sqlcmd 的方法

sqlcmd -S myServer -d myDB -U user -P password -i file1.sql -v p1="D:\myscripts" 
Run Code Online (Sandbox Code Playgroud)

我可以验证它是否传递给 File1.sql

PRINT '$(p1)' 

:setvar path1 $(p1) + '\file1.sql'

:r $(path1)
Run Code Online (Sandbox Code Playgroud)

但是我没有找到在第二行中连接路径和文件名的正确方法。

第三次编辑: 我在这里找到了连接路径和文件名的解决方案。

PRINT '$(p1)' 

:r $(p1)\file1.sql
Run Code Online (Sandbox Code Playgroud)

还有更好的方法吗?

sql-server sqlcmd

5
推荐指数
1
解决办法
3224
查看次数

是否有任何原因不在 SSMS 中默认启用 SQLCMD 模式?

我不认为“只是为了确保脚本不需要 sqlcmd-mode”是一个正当理由。

在向我的同事发出启用此设置的命令之前需要考虑什么?

sql-server ssms sqlcmd

5
推荐指数
1
解决办法
1689
查看次数

如何使用sql server作业在远程位置传输文件?

我配置了一个作业,它在远程位置传输文件。
我的命令在命令提示符下运行得非常好,但是当我在 sql server 作业中配置它时,它会导致登录失败未知用户名或密码错误。
我无法找出未传输此文件的确切原因。

如果我的代码中有错误,那么它应该在命令提示符下给出相同的错误。谁能帮助我理解为什么我会收到错误?

sql-server sqlcmd

5
推荐指数
1
解决办法
3476
查看次数

SQL Server 2014 LocalDB 中的 SQLCMD.EXE 在哪里或如何安装?

在安装了 SQL Server LocalDB 2014 的机器上,我正在寻找 SQLCMD.EXE 文件,但在任何地方都找不到它。有没有办法单独安装?

不幸的是,我不是机器的本地管理员,所以我不喜欢 MSI ...

找到此链接https://www.microsoft.com/en-us/download/confirmation.aspx?id=36433,但不能使用 MSI ... 也许复制可执行文件和 dll 可以解决问题。

C:\Program Files\Microsoft SQL Server\110\Tools\Binn 从安装了 SSMS 的另一台计算机复制文件 SQLCMD.EXE、BATCHPARSER.DLL 和 SQLCMD.RLL 后,我仍然收到错误:

Microsoft SQL Server Native Client 11.0:未找到数据源名称且未指定默认驱动程序。

运行sqlcmd -S np:\\.\pipe\LOCALDB#F8040C8F\tsql\query

sql-server sqlcmd sql-server-localdb

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

在 RHEL7 上安装 SQL Server 并收到 - Sqlcmd:错误:Microsoft ODBC Driver 13 for SQL Server:TCP 提供程序:错误代码 0x2AF9

我在 RHEL7 VM 上安装了 SQL Server

msodbcsql-13.1.1.0-1.x86_64
mssql-server-14.0.100.187-1.x86_64
mssql-tools-14.0.2.0-1.x86_64

# ls -al /opt/
total 4
drwxr-xr-x.  5 root root   52 Jan 13 08:31 .
drwxr-xr-x. 17 root root 4096 Jan 13 07:55 ..
drwxr-xr-x.  3 root root   22 Jan 13 08:31 microsoft
drwxr-xr-x.  4 root root   26 Jan 13 08:14 mssql
drwxr-xr-x.  4 root root   28 Jan 13 08:31 mssql-tools
Run Code Online (Sandbox Code Playgroud)

systemctl 表示 SQL 服务器已启动并正在运行 / 绿色

# systemctl status mssql-server
mssql-server.service - Microsoft(R) SQL Server(R) Database Engine
   Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; …
Run Code Online (Sandbox Code Playgroud)

sql-server linux unixodbc sqlcmd timeout

5
推荐指数
1
解决办法
6383
查看次数

如何将 DBCC SHRINKFILE 的结果保存到表中?

我有以下脚本:

-- available space in each of the database files

PRINT @@SERVERNAME
--SQLDWDEV01
USE [BodenStage]
GO
SELECT name 
,(CAST(ROUND((size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0),2) AS NUMERIC(18,2))) AS AvailableSpaceInMB  
,(CAST(ROUND((size/128.0 - FILEPROPERTY(name, 'SpaceUsed')/128.0)/1024.00,2) AS NUMERIC(18,2))) AS AvailableSpaceInGB 
FROM sys.database_files;  
GO
Run Code Online (Sandbox Code Playgroud)

尽管我不喜欢既不收缩数据也不收缩日志文件,但有时需要这样做。不是我的错。

有方法,以缩小数据文件,而无须描述累积碎片在这里

仅截断

将文件末尾的所有可用空间释放给操作系统,但不会在文件内执行任何页面移动。数据文件仅收缩到最后分配的范围。

如何将DBCC SHRINKFILE的结果保存到表中?

请参见下文,这是将DBCC SQLPERF的结果保存到表中的一种方法。

select @@servername as [Server]
       ,db_name() as [database]
go

SET NOCOUNT ON

begin try
  drop table #radhe
end try
begin catch
end catch


create table #radhe …
Run Code Online (Sandbox Code Playgroud)

sql-server dbcc pivot sqlcmd xp-cmdshell

5
推荐指数
1
解决办法
873
查看次数

无法从 Ubuntu sqlcmd 客户端连接到 SQL Server

我正在尝试从 Linux Ubuntu 16.04 计算机连接到 SQL Server Express 服务器。我为 linux 机器安装了所有 SQL 命令行实用程序,并按照 Linux 文档上的 Microsoft SQL Server 的说明进行操作。

当我跑

sqlcmd -S ip/SQLEXPRESS -U SA -P 1234
Run Code Online (Sandbox Code Playgroud)

该命令总是返回以下错误:

适用于 SQL Server 的 Microsoft ODBC 驱动程序 13:登录超时已过期。
适用于 SQL Server 的 Microsoft ODBC 驱动程序 13:TCP 提供程序:错误代码 0x2AF9

我能够从 Windows 10 计算机运行相同的命令,并且没有任何缺陷。

linux 计算机可以与服务器机器和 SQL Server 1433 端口进行通信。我使用 linux nc 命令 (netcat) 对此进行了测试。

Linux nc 命令结果:

nc -z -v -w5 192.168.0.1 1433
Run Code Online (Sandbox Code Playgroud)

连接到 192.168.0.1 1433 端口 [tcp/ms-sql-s] 成功!

有什么建议或缺少什么吗?

我曾尝试更改端口、参数顺序等……但 Linux 版本 …

sql-server linux sqlcmd connectivity

5
推荐指数
1
解决办法
4502
查看次数

sqlcmd 历史?

如何列出/查看sqlcmd历史记录?

Mysql、Postgresql 和 sqlite 写入点文件:.mysql_history, .psql_history and .sqlite_history.

在使用 mssql/sql-server 时,我正在寻找等效(或近似值)。

谢谢。

sql-server sqlcmd

5
推荐指数
1
解决办法
708
查看次数

不能使用 SQLCMD

我在单用户模式下启动了 SQL Server,如下所示: c:\....\sqlservr -m

当我尝试使用 连接到它时SQLCMD -E,出现以下错误:

Msg 18461, Level 14, State 1, Server SERVERNAME, Line 1
Login failed to user 'USER\Name'. Reason: Server is in single user mode. Only one administrator can connect at this time.
Run Code Online (Sandbox Code Playgroud)

我以域管理员身份登录到服务器的用户。

在我尝试之前,我登录的用户与此 SQL 服务器无关。(事实上​​,我正在尝试创建一个新的 SA,因为我们不知道当前密码是什么)

编辑

似乎即使我这样做:

c:\....\sqlservr -m"sqlcmd"
Run Code Online (Sandbox Code Playgroud)

我仍然收到上述错误。我不确定其他SQLCMD地方是否还有其他电话。

sql-server sql-server-2008-r2 sqlcmd

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

sqlcmd 新登录名/用户

我是 sqlcmd 的新手,我想创建一个新用户。我做了以下工作:

1> CREATE LOGIN FYI_DBA WITH PASSWORD = 'V_2017'
2> go
1> CREATE USER FYI_DBA FOR LOGIN FYI_DBA
2> go
Run Code Online (Sandbox Code Playgroud)

然后在 cmd 提示符下我运行了以下命令:

sqlcmd -s LOCALHOST -U 'FYI_DBA' -P 'V_2017'
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : Login failed for user ''FYI_DBA''..
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

sql-server sqlcmd

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