7

我必须创建一个与 SQL Server 和 MS-Access 兼容的查询。

问题是在 SQL Server 中我尝试将数字转换为 varchar。在 SQL Server 中,我可以像这样进行转换:convert(varchar(100), 5)在 MS Access 中:CStr(5)

是否有可能为这两个数据库兼容?

4

2 回答 2

5

在 SQL Server 中,您可以编写一个用户定义的标量函数,调用CStr()该函数进行转换。

内置例程不兼容。

不幸的是,这不会真正起作用,因为您需要在函数前面加上一个模式名称。因此,您可以拥有:

create function cstr(@val int)
returns varchar(255) as
begin return(cast(@val as varchar(255))) end;

但是您必须将其称为:

select dbo.cstr(4);

如果值在列中,则考虑在每个数据库中的表上编写一个视图,该视图在视图中进行转换。

要让 VB 同时使用 Access 和 SQL Server,您可以放弃 Access 并使用真正的数据库。哦,我想这不是一个解决方案;)您将需要识别数据库的类型并为每个数据库设置不同的代码。您可以通过使用视图隐藏一些丑陋来最小化这种情况。

您可能会发现切换到 SQL Server 2012 是有利的,它扩展了其功能库以包含一些 Access 功能。但不是cstr()

于 2013-03-26T14:32:31.000 回答
4

我们可以将 varchar 中的数字转换为:

  select format(Adress_ID,'0') ... next code

此代码将从 Access 和 SQL Server 两者转换

于 2013-03-26T16:05:49.363 回答