我有2个表,第1个表包含以下各列,
id code Name 1 c1 chk1 2 c2 chk2 3 c3 chk3
第二个表格包含以下各列,
id,Name,Chk1,chk2,Chk3
如果将table1动态更新为值‘4,’c4’,’ch4’,我必须将’Chk4’列添加到table2中。如何编写过程来执行此操作?
我尝试了以下步骤,但无法正常工作。
create proc Add_Check as begin declare @Column varchar(50) declare @query varchar(255) declare @query1 varchar(255) set @Column= (select top 1 QUOTENAME(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
使用此查询作为过程。
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