我有一個表的欄位District是VARCHAR(5)
當我創建一個計算域時:
ALTER TABLE
Postcode
ADD
DistrictSort1
AS
(dbo.fn_StripCharacters(District, '^A-Z'))
PERSISTED;
計算域DistrictSort1添加為NVARCHAR(MAX)
是否可以將 更改NVARCHAR為除 之外的任何內容(MAX)?
是否有任何性能問題?
uj5u.com熱心網友回復:
顯而易見的答案是CAST/CONVERT計算列中明確的值:
ALTER TABLE dbo.Postcode
ADD DistrictSort1 AS CONVERT(varchar(5),(dbo.fn_StripCharacters(District, '^A-Z')) PERSISTED;
但是,我建議查看您的 function fn_StripCharacters,該函式當前設定為回傳nvarchar(MAX). 與 SQL Server 內置的函式不同,用戶定義的函式不能根據其輸入引數回傳不同的資料型別。因此,每當您參考您的函式時,您都會得到nvarchar(MAX)回報。
因此,有時最好有相同功能的多個相似版本。對于這樣的表單示例,您可能需要 4 個,即非和長度的回傳值varchar和nvarchar值。MAXMAX
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/389902.html
標籤:sql sql-server
