小编Nik*_* B.的帖子

使用 SQLOLEDB 或 MSDASQL 的一条 SQL 语句产生不同的结果

我将 VB6 与 SQLOLEDB 和 MSDASQL 一起使用。通过切换提供程序,我注意到一次查询得到了不同的结果。

我的查询检查一些服务器设置并执行两个 BACKUP 语句之一。

当我使用 SQLOLEDB 时,一切正常并且备份被创建。如果我使用的是 MSDASQL,则不会发生错误,但不会创建备份。

这是同一个服务器、同一个用户和同一个语句。

我使用过 SQL Profiler,它显示 100% 执行了相同的命令。即使我复制 MSDASQL 命令并在 SSMS 中执行它,也会创建备份,但不会使用 VB6。

我的声明:

DECLARE @s varchar(1000), @ver int
SET @ver = 10
SELECT @s = case
WHEN
@ver > 9
THEN
'BACKUP DATABASE [DB] TO DISK = ''C:\SQL Backup\Backup.dat'' WITH  COMPRESSION, NOFORMAT, NOINIT, SKIP, REWIND, NOUNLOAD, STATS = 10'
ELSE
'BACKUP DATABASE [DB] TO DISK = ''C:\SQL Backup\Backup.dat'' WITH  NOFORMAT, NOINIT, SKIP, REWIND, NOUNLOAD, STATS = 10;' …
Run Code Online (Sandbox Code Playgroud)

sql-server backup profiler t-sql

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

标签 统计

backup ×1

profiler ×1

sql-server ×1

t-sql ×1