2013-05-03 117 views
0

我有一个表MstAttributes另一个作为TrnIndexAttributes。我想在TrnIndexAttributes表中创建很多列,因为MstAttributes中有很多行。在插入MstAttributesone列中的值后,应该在TrnIndexAttribute表中创建像ID1,ID2,ID3一样的数据....如何创建一个触发器,用于在另一个表中插入数据时创建表中的列

+10

不要这样做。只是...不。 – 2013-05-03 14:01:10

+2

动态添加列通常是一个坏主意,因为(例如)您无法管理模式(限制表增长,管理索引),并且不能编写代码来使用新列,因为您不知道它们何时被添加或他们包含什么。如果你解释*为什么*你想这样做,有人可能有另一种解决方案。 – Pondlife 2013-05-03 14:12:58

+4

当达到记录尺寸限制时,你会怎么做? (提示,你会快速地修改))你将如何确定正确的数据类型?你为什么要这样做?如果您不知道在设计时需要哪些列,可能关系数据库不是解决问题的最佳工具。 – HLGEM 2013-05-03 14:21:36

回答

0

如果您真的觉得这样做(尽管Philip Kelley有正确的警告),您将拥有使用动态查询。

DECLARE @Query NVARCJAR(MAX) = N'ALTER TABLE TableOfInfiniteDoom ADD COLUMN' + [your logic for a name] + [your ligic for a type] 
EXEC sp_executesql @Query 

在你的trugger(如果你处理multils DML,请不要忘记循环)。

相关问题