繁体   English   中英

将int转换为适用于SQL Server和MS-Access的varchar

[英]convert int to varchar working for SQL Server and MS-Access

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

问题是在SQL Server中我尝试将数字转换为varchar。 在SQL Server中,我可以像这样进行转换:在MS Access: CStr(5) convert(varchar(100), 5) 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是有利的,SQL Server 2012扩展了其功能集以包含一些Access功能。 但不是cstr()

我们可以在varchar中转换数字,这样:

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

此代码将从Access和SQL Server转换

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM