How to add dynamic column to an existing table

我是研究僧i 提交于 2019-11-29 16:00:35

use this query as procedure.

CREATE PROC ADD_CHECK
AS 
BEGIN
    DECLARE @COLUMN VARCHAR(50)
    DECLARE @QUERY VARCHAR(255)
    DECLARE @QUERY1 VARCHAR(255)

    SET @COLUMN= (SELECT TOP 1 NAME FROM TABLE1 WHERE ID=(SELECT MAX (ID)     FROM TABLE1))

    IF EXISTS(SELECT 1 FROM TABLE1 WHERE NAME=@COLUMN) 
    BEGIN
        SET @QUERY = 'ALTER TABLE TABLE2 ADD ' + @COLUMN + ' VARCHAR (50)'
        SET @QUERY1 = 'ALTER TABLE TABLE2 ADD ' + @COLUMN + '_COMPLETEDDATE VARCHAR     (50)'
        EXEC(@QUERY)
    END
END

Try this:

CREATE PROCEDURE <procedurename>
AS 
BEGIN    
    DECLARE @COLUMN varchar(10), @SQL Varchar(100);
    SELECT @COLUMN = Name FROM Table1 
    WHERE id = (SELECT MAX(id) FROM Table1)
                IF NOT EXISTS(
                              SELECT COLUMN_NAME 
                              FROM INFORMATION_SCHEMA.COLUMNS
                              WHERE TABLE_NAME = 'Table2' 
                              AND COLUMN_NAME = @COLUMN
                             )
                 BEGIN
                   SELECT @SQL = 
                          'ALTER TABLE Table2 ADD '
                           +@COLUMN+' varchar(10),'
                           +@COLUMN+'_CompletedDate varchar(50)'
                   EXECUTE (@SQL)
                 END
END

Use Triggers as follows:

CREATE TRIGGER AddDynamicColumn_to_table2
ON Table1
AFTER INSERT
AS
Exec ('ALTER TABLE Table2 ADD ' + (select name from inserted) + ' Varchar(10)')
GO

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!