選択したAdventureworksテーブルのすべての列を一覧表示しようとしています。このすべての列のリストを表示するには、どのT-sQLステートメントまたはストアドプロシージャを実行できますか?C#Webアプリを使用して1つの入力パラメーター= table_nameを入力し、すべてのcolumn_namesのリストを出力として取得したいと思います。現在、動作するsp_columnsストアドプロシージャを実行しようとしていますが、selectとexecを組み合わせた1つの列だけを取得することはできません。誰かがこれを行う方法を知っていますか?
すべての返信に感謝しますが、どの回答も私が必要とすることをしません。私の問題についてもっと説明させてください。以下のクエリは、必要なものを返します。しかし、私の問題は、このロジックを入力パラメーターを受け取るSPに組み込むことです。成功したSQLステートメントは次のとおりです。
select col.name from sysobjects obj inner join syscolumns col
on obj.id = col.id
where obj.name = 'AddressType'
order by obj.name
そして現在、私のSPは次のようになっています。
CREATE PROCEDURE [dbo].[getColumnNames]
@TableName VarChar(50)
AS
BEGIN
SET NOCOUNT ON;
SET @TableName = RTRIM(@TableName)
DECLARE @cmd AS NVARCHAR(max)
SET @cmd = N'SELECT col.name from sysobjects obj ' +
'inner join syscolumns col on obj.id = col.id ' +
'where obj.name = ' + @TableName
EXEC sp_executesql @cmd
END
しかし、私は上記を実行します
exec getColumnNames 'AddressType'
そしてそれは私にエラーを与えます:
Invalid column name 'AddressType'
どうすればこれを達成できますか?