私は美しく機能するクエリを持っています:
CREATE Procedure BCP_Text_File
(
@table varchar(100),
@FileName varchar(100)
)
AS
If exists(Select * from information_Schema.tables where table_name=@table)
Begin
Declare @str varchar(1000)
set @str='Exec Master..xp_Cmdshell ''bcp "Select * from '+db_name()+'..'+@table+'" queryout "'+@FileName+'" -c'''
Exec(@str)
end
else
Select 'The table '+@table+' does not exist in the database'
しかし、私はそこにこれを追加する必要があります:
select column_name
from information_schema.columns
where table_name = @table
order by ordinal_position
これまでのところ、私は持っています:
alter Procedure BCP_Text_File
(
@table varchar(100),
@FileName varchar(100)
)
AS
If exists(Select * from information_Schema.tables where table_name=@table)
Begin
Declare @str varchar(1000)
set @str='Exec Master..xp_Cmdshell ''bcp "
select column_name
from information_schema.columns
where table_name = '+db_name()+'..'+@table+'
order by ordinal_position
Select * from '+db_name()+'..'+@table+'" queryout "'+@FileName+'" -c'''
Exec(@str)
end
else
Select 'The table '+@table+' does not exist in the database'
しかし、一重引用符や二重引用符を間違えていると思います。結果のフィールド名が最初の行になるように、この select ステートメントを追加しています。
ヘルプやガイダンスをありがとう。