我必须创建一个与 SQL Server 和 MS-Access 兼容的查询。
问题是在 SQL Server 中我尝试将数字转换为 varchar。在 SQL Server 中,我可以像这样进行转换:convert(varchar(100), 5)
在 MS Access 中:CStr(5)
。
是否有可能为这两个数据库兼容?
我必须创建一个与 SQL Server 和 MS-Access 兼容的查询。
问题是在 SQL Server 中我尝试将数字转换为 varchar。在 SQL Server 中,我可以像这样进行转换:convert(varchar(100), 5)
在 MS Access 中:CStr(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()
。
我们可以将 varchar 中的数字转换为:
select format(Adress_ID,'0') ... next code
此代码将从 Access 和 SQL Server 两者转换