私はあなたの例のように、サンプル表を作成して、以下の
をお試しください:
CREATE TABLE Tab_A
(
COL_NAME CHAR(1),
DATATYPE VARCHAR(100),
MAX_LENGTH INT
)
insert into Tab_A values('A', 'VARCHAR', 255)
insert into Tab_A values('B', 'INT' , 4)
insert into Tab_A values('C', 'FLOAT' , 8)
今私は最後に、私は、ダイナミックを使用しています、他のテーブルTab_B、今
CREATE TABLE Tab_B
(
X CHAR(1),
Y VARCHAR(100),
Z INT
)
SELECT * from Tab_B
を作成しましたクエリ、
DECLARE @ColumnName AS NVARCHAR(MAX)
SELECT @ColumnName = ISNULL(@ColumnName + ',', '')
+ QUOTENAME(COL_NAME) + ' ' + DATATYPE + CASE WHEN DATATYPE = 'INT' THEN '' ELSE '(' + CAST(MAX_LENGTH AS VARCHAR(10)) +')' END
FROM (
SELECT DISTINCT *
FROM Tab_A
) AS Courses
DECLARE @SQL VARCHAR(1000)
SELECT @SQL = 'ALTER TABLE Tab_B ADD ' + @ColumnName + ''
EXEC (@SQL)
SELECT * FROM Tab_B
サンプルテーブルのデータと期待される結果を追加します。 – jarlh