我像这样运行 SQL Server 2005 的批量复制程序 BCP:
bcp mydb.dbo.mytbl in myfile.blk -c -S mysvr -U mylogin -P mypass
Run Code Online (Sandbox Code Playgroud)
它运行并产生如下输出:
Starting copy...
1000 rows sent to SQL Server. Total sent: 1000
...
1000 rows sent to SQL Server. Total sent: 55000
Run Code Online (Sandbox Code Playgroud)
但后来它停止了。光标没有返回提示,我没有收到“...行已复制”。信息。
我尝试查询目标表,我已经可以看到我想要导入的行。
我要终止控制台吗?会回滚吗?
我公司有很多分支机构,每个分支机构都有一个数据库服务器。有些使用 SQL Server 2005,有些使用 SQL Server 2008。所有这些服务器的架构都相同。
每当我想做添加列等 DDL 时,我要么通过一个接一个地连接到每个服务器,要么通过批处理文件使用 OSQL 运行 DDL 脚本。
是否有内置工具可以在多台服务器上同时执行 DDL?第三方工具怎么样?(最好是免费的)
假设我有一张这样的表:
create table mytable(cola int primary key, colb varchar(10));
Run Code Online (Sandbox Code Playgroud)
让我们把一些数据放进去:
insert into mytable values(1, 'abc');
insert into mytable values(2, 'def');
Run Code Online (Sandbox Code Playgroud)
当我选择使用此查询时:
select * from mytable where colb = 0;
Run Code Online (Sandbox Code Playgroud)
我得到所有行。
请注意 colb 数据类型是 varchar,但我使用 0 作为值。如果我使用 1 或其他整数,则不会得到任何行。
这是为什么?是否有设置可以防止这种行为?
顺便说一句,Windows 的 mysql 5.5.9。