COALESCEはあなたの友人の良いプログラマです。あなたがしたいことは、COLUMNSのcsvリストを取得することです。動的SQLを使用すると、残りのコードを自動的に生成できます。
declare @columns AS VARCHAR(MAX)
SELECT @COLUMNS = NULL
select @COLUMNS = coalesce(@columns+',','')+c.name from syscolumns as c
inner join sysobjects as o on c.id = o.id
WHERE O.NAME = 'change me to your table name'
SELECT @COLUMNS
SELECT ' CREATE VIEW ' + 'COOL VIEW NAME' + ' AS ' +
' SELECT ' + @COLUMNS +
' FROM '+ ' change me to your table name '+
' WITH CHECK OPTION;'
EDIT
私は意図的にどこでもビューを宣言していませんでした。ビューを宣言したい場合は、そのようなスクリプトを実行してください。 サーバー上でコードを読み取らずに実行することは絶対に避けてください。実行部分を意図的に除外しました。コードを切り貼りして理解/テストせずに実行するのは悪い判断と思います。
DECLARE @sql varchar(max)
SELECT @sql = ' CREATE VIEW ' + 'COOL VIEW NAME' + ' AS ' +
' SELECT ' + @COLUMNS +
' FROM '+ ' change me to your table name '+
' WITH CHECK OPTION;'
EXEC(@sql);
出典
2016-09-12 18:51:09
gh9
はい、あなたは動的SQLが必要 – Lamak