我正在尝试使用 sqlcmd 从命令行运行来自 SQL Server Express 的任何命令。这是一个例子。
sqlcmd -U myname-P mypwd -S mysys/SQLEXPRESS -d MASTER -Q "Select count(*) from sys.databases"
Run Code Online (Sandbox Code Playgroud)
我不断收到以下错误。它似乎试图使用命名管道进行连接,但我已将 SQL Express 配置为使用 TCP。如何让 SQLCMD 不使用命名管道?
Sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server : Named Pipes Provider:
Could not open a connection to SQL Server [67]. .
Sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server : Login timeout expired.
Sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server :
A network-related or instance-specific error has occurred …Run Code Online (Sandbox Code Playgroud) 我有这个代码
ALTER PROCEDURE [dbo].[tablepass12]
(@TableName nvarchar(20))
AS
BEGIN
DECLARE @SQL VARCHAR(8000)
SELECT @SQL = 'SQLCMD -S ICB3110\SQLEXPRESS -d teena -E -Q "SELECT * FROM "'+@TableName+' -o d:\processing\'+@TableName+'.csv'
EXEC MASTER..XP_CMDSHELL @SQL
END;
Run Code Online (Sandbox Code Playgroud)
执行它时,我收到此错误
消息 105,级别 15,状态 1,服务器 ICB3110\SQLEXPRESS,第 1 行
字符串 'AIR_LINE ' 后的未闭合引号。消息 102,级别 15,状态 1,服务器 ICB3110\SQLEXPRESS,第 1 行
“AIR_LINE”附近的语法不正确。
当我无法使用传统方式连接到SQL Server(原因是删除登录触发器)时,DAC引起了我的注意。我在网上做了一些搜索,结果发现访问服务器的唯一方法是使用 DAC 连接,不幸的是默认情况下该连接是关闭的。但是,我仅使用 sqlcmd 就能够解决这个问题(我删除了触发器)。
我的问题是,如果我可以仅使用 sqlcmd 连接到 SQL Server,那么 DAC 的用途是什么?
是否可以在SQL Server 2008中使用SQLCMD创建表并生成数据并插入表中,而无需手动INSERT为每一行键入语句?
例子:
假设有 10 周(1、2、3 ... 10)和 2 个时间点(上午 11 点、下午 12 点)和 5 个场地(房间 1、房间 2 ... 房间 5)。因此总共会有 10 x 2 x 5 = 100 行。
那么,在给定 3 个数据参数(周、时间和地点)的情况下,是否有可能生成这 100 行的 SQL 语句?
+--------------------------------+
| Week | Time | Venue |
+--------------------------------+
| 1 | 11 am | Room 1 |
| 1 | 12 pm | Room 1 |
| 1 | 11 am | Room 1 |
| |
| 10 | …Run Code Online (Sandbox Code Playgroud)