簡體   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