[英]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.