我必须创建与SQL Server和MS-Access兼容的查询。
问题是,在SQL Server中,我试图将数字转换为varchar。在SQL Server中,我可以像这样进行转换: MS Access中的convert(varchar(100), 5):CStr(5)。
有没有可能对这两个数据库兼容呢?
发布于 2013-03-26 22:32:31
在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会更有优势,SQL Server 2012已扩展了其功能,包括了一些访问功能。但不是cstr()。
发布于 2013-03-27 00:05:49
我们可以将数字转换为varchar,这样:
select format(Adress_ID,'0') ... next code此代码将从Access和SQL Server两者转换
https://stackoverflow.com/questions/15639626
复制相似问题