关于MSSQL字段类型不能相加的问题?

来源:百度知道 编辑:UC知道 时间:2024/05/04 10:13:16
一个ntext类型的字段 怎样添加nvarchar类型的内容
nvarchar和nvarchar的可以直接用+ 那 ntext和nvarchar 呢?
就是这句
sql="update wuza set naiyo=naiyo+'" & memo & "' Where CStr(id)='" & id & "' and tjhm='" & iduse & "'"
在ACCESS环境中 是正确的
在MSSQL中
naiyo是表wuza的一个字段类型是ntext
而提交变量memo则是nvarchar
MSSQL不让不同类型的数据相加
请问应该怎么转换 memo变量成ntext类型呢?
苦恼死了 请高手帮帮我QQ:561003087

--如果字段长度小于8000,直接用CAST
select '说明1'+cast(a.ntext1 as varchar)
+'说明2'+cast(a.ntext2 as varchar)
+'说明3'+cast(a.ntext3 as varchar)
from ....

--如果字段长度大于8000,则:
下面的代码演示, 如果把两个 text 列相加, 更新到其中一个 text 列中
USE tempdb
GO

-- 测试环境
CREATE TABLE ta(id int identity(1, 1), col1 text)
CREATE TABLE tb(id int identity(1, 1), col1 text)
INSERT ta SELECT REPLICATE('abc', 8000)
INSERT tb SELECT REPLICATE('cba', 8000)

-- show insert data length
SELECT [ta.col1] = DATALENGTH(col1) FROM ta
SELECT [tb.col1] = DATALENGTH(col1) FROM tb
GO

-- 更新 ta, 让 ta.col1 = ta.col1 + ' ' + tb.col1
-- 条件: ta.id = 1, tb.id = 1
DECLARE @p1 binary(16), @p2 binary(16)

SELECT @p1 = TEXTPTR(col1) FROM ta (NOLOCK)
WHERE id = 1
IF TEXTVALID('ta.col1', @p1) = 0
BEGIN
RAISERROR('ta.col1 invalid', 16, 1)