sql-server - 如何使用 'inserted' 和 'deleted' 表中的 text、ntext 或 image 列

标签 sql-server sql-server-2008 triggers

不能在“插入”和“删除”表中使用 text、ntext 或 image 列。

这种情况下应该采取什么解决方法? :(

最佳答案

从 SQL Server 2005 开始,TEXT/NTEXT/IMAGE 已弃用 - 您应该使用 (N)VARCHAR(MAX)VARBINARY(MAX) 数据类型。

(N)VARCHAR(MAX)(请参阅 MSDN docs here )和 VARBINARY(MAX) 允许最多 2 GB 的数据

来自 MSDN 文档:

nvarchar [ ( n | max ) ]

Variable-length Unicode character data. n can be a value from 1 through 4,000. max indicates that the maximum storage size is 2^31-1 bytes. (= 2 GB)

(N)VARCHAR(MAX) 类型还允许所有常用的 T-SQL 字符串函数对其进行处理 - 而 (N)TEXT 则完全不是这样。

如这个MSDN article shows ,触发器也支持替换类型:

SQL Server 2008 does not allow for text, ntext, or image column references in the inserted and deleted tables for AFTER triggers. However, these data types are included for backward compatibility purposes only. The preferred storage for large data is to use the varchar(max), nvarchar(max), and varbinary(max) data types. Both AFTER and INSTEAD OF triggers support varchar(max), nvarchar(max), and varbinary(max) data in the inserted and deleted tables.

关于sql-server - 如何使用 'inserted' 和 'deleted' 表中的 text、ntext 或 image 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1935691/

相关文章:

sql - 在功能选择中找不到 sql server management studio 2008 组件

python - SyntaxError : invalid syntax on lib/python3. 8/site-packages/sql_server/pyodbc/base.py django 在 Linux 上部署

sql-server - 在 SQL Server(查询分析器)中识别查询结果中隐藏字符的最佳方法是什么?

tsql - 无符号 64 位值与 NUMERIC(20,0) 的用户定义类型

c# - MultipleActiveResultSets=True 或多个连接?

sql-server-2008 - 如何使用 SQL Server Dev Edition 加速集成测试

sql-server - sql server 2008安装问题

sql-server - SQL事务死锁

database - 如何仅在 Azure Cosmos DB 中的文档创建(而不是修改)后触发 Azure 函数?

javascript - 输入数据库中的特定字段时如何生成特定电子邮件的电子邮件触发器