我必須創建一個兼容SQL Server和MS-Access的查詢。將int轉換爲適用於SQL Server和MS-Access的varchar
的問題是,在SQL Server中我嘗試將數字轉換爲varchar。在SQL Server中,我可以這樣進行轉換:convert(varchar(100), 5)
MS Access:CStr(5)
。
是否有可能做了兩個數據庫兼容這個?
我必須創建一個兼容SQL Server和MS-Access的查詢。將int轉換爲適用於SQL Server和MS-Access的varchar
的問題是,在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一起工作,你可以只放棄訪問和使用一個真正的數據庫。哦,我想這不是一個解決方案;)你將需要確定數據庫的類型,併爲每個數據庫設置不同的代碼。你可以通過使用視圖來隱藏一些醜陋來最小化這種情況。
您可能會發現有利切換到SQL Server 2012中,已經擴展了其功能的劇目包括一些訪問功能。但不是cstr()
。
我們可以在VARCHAR轉換爲數字如此:
select format(Adress_ID,'0') ... next code
這段代碼將從兩個,Access和SQL Server
問題轉換是,我使用此查詢在VB中,我可以連接sql數據庫或訪問 – 2013-03-26 14:36:25
好吧,我明白你非常感謝你 – 2013-03-26 14:45:04