我有 2 个表,第一个表包含以下列,
id code Name
1 c1 chk1
2 c2 chk2
3 c3 chk3
第二个表包含以下列,
id,Name,Chk1,chk2,Chk3
如果表 1 动态更新为值“4”、“c4”、“ch4”,我必须将列“Chk4”添加到表 2 中。如何编写程序来执行此操作?
我已经尝试了以下程序,但效果不佳。
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
关于sql - 如何将动态列添加到现有表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23356923/