teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

修正

2017/02/23 12:09

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  作ってみました。
6
6
  テーブル名は table1 となっていますので、適宜書き換えてください。
7
- 私なら `{0}` として string.Format() を使います。
7
+ 私ならパラメータを使うか `{0}` として string.Format() を使います。
8
8
  ```SQL
9
9
  declare @result varchar(8000);
10
10
  declare @s varchar(8000);

2

修正

2017/02/23 12:09

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -3,7 +3,7 @@
3
3
  追記
4
4
 
5
5
  作ってみました。
6
- テーブル名は table となっていますので、適宜書き換えてください。
6
+ テーブル名は table1 となっていますので、適宜書き換えてください。
7
7
  私なら `{0}` として string.Format() を使います。
8
8
  ```SQL
9
9
  declare @result varchar(8000);

1

追記

2017/02/23 12:08

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -1,1 +1,41 @@
1
- [SQLServerでSQLを使ってテーブルのカラム名(項目名)を取得する](http://lightgauge.net/database/sqlserver/1491/) を参考に列番号から列名を求め、そこから SQL 文を組み立ててみてはいかがでしょうか?
1
+ [SQLServerでSQLを使ってテーブルのカラム名(項目名)を取得する](http://lightgauge.net/database/sqlserver/1491/) を参考に列番号から列名を求め、そこから SQL 文を組み立ててみてはいかがでしょうか?
2
+
3
+ 追記
4
+
5
+ 作ってみました。
6
+ テーブル名は table となっていますので、適宜書き換えてください。
7
+ 私なら `{0}` として string.Format() を使います。
8
+ ```SQL
9
+ declare @result varchar(8000);
10
+ declare @s varchar(8000);
11
+ declare @seperator varchar(2);
12
+
13
+ declare c cursor for
14
+ select column_name
15
+ from information_schema.columns
16
+ where table_name = 'table1' and ordinal_position > 10;
17
+
18
+ set @result = 'select ';
19
+ set @seperator = '';
20
+ open c;
21
+ while 0 = 0
22
+ begin
23
+ fetch next from c into @s;
24
+ if @@fetch_status = 0
25
+ begin
26
+ set @result += @seperator;
27
+ set @result += @s;
28
+ set @seperator = ', ';
29
+ continue;
30
+ end
31
+ else
32
+ begin
33
+ break;
34
+ end
35
+ end
36
+ close c;
37
+ deallocate c;
38
+
39
+ set @result += ' from table1'
40
+ execute(@result);
41
+ ```