MSSQL_用DATALENGTH找出VARCHAR欄位中含有中文字的資料列

  • 1958
  • 0
  • 2012-02-09

摘要:用DATALENGTH找出VARCHAR欄位中含有中文字的資料列

 

--## 可以用DATALENGTH找出VARCHAR欄位中含有中文字的資料列
----------------------------------------------------------------------------------------------

SELECT * FROM TABLE_NAME
WHERE LEN(USERID) <> DATALENGTH(USERID)


--## 飯粒
----------------------------------------------------------------------------------------------
CREATE TABLE #T
(
 [TEXT] TEXT,
 [NTEXT] NTEXT,
 [VARCHAR] VARCHAR(30)
 
)
GO

INSERT INTO #T VALUES('123abcㄅㄆㄇ机楞撒', '123abcㄅㄆㄇ机楞撒', '123abcㄅㄆㄇ机楞撒');
GO

SELECT 
       --CAST ([TEXT] AS VARCHAR) AS 'TEXT(VARCHAR)',
       LEN(CAST ([TEXT] AS VARCHAR)) AS 'LEN_TEXT(VARCHAR)',
       DATALENGTH([TEXT]) AS 'DATALEN_TEXT',
      
       LEN(CAST([NTEXT] AS NVARCHAR)) AS 'LEN_NTEXT(NVARCHAR)',
       DATALENGTH([NTEXT]) AS 'DATALEN_NTEXT',
                     
       LEN([VARCHAR]) AS 'LEN_VARCHAR',
       DATALENGTH([VARCHAR]) AS 'DATALEN_VARCHAR'
      
FROM #T;
GO

DROP TABLE #T;
GO

 

LEN_TEXT(VARCHAR) DATALEN_TEXT LEN_NTEXT(NVARCHAR) DATALEN_NTEXT LEN_VARCHAR DATALEN_VARCHAR
----------------- ------------ ------------------- ------------- ----------- ---------------
12                18           12                  24            12          18