내가 선택한 Adventureworks 테이블의 모든 열을 나열하려고합니다. 이 모든 열의 목록을 보려면 어떤 T-sQL 문 또는 저장된 proc을 실행할 수 있습니까? 한 C# 웹 응용 프로그램을 사용하여 하나의 입력 매개 변수 = table_name을 입력 한 다음 출력으로 모든 column_names 목록을 가져오고 싶습니다. 지금은 sp_columns가 작동하는 proc 저장 프로 시저를 실행하려고하는데 select와 exec를 결합하여 하나의 열만 가져올 수 없습니다. 아무도 이것을하는 방법을 아는가?T-SQL에서는 주어진 테이블 이름에 대해 열을 어떻게 표시합니까?
모든 답장을 보내 주셔서 감사합니다.하지만 답변이 필요한 것은 아닙니다. 내 문제를 더 설명해 줄께. 아래 쿼리는 내가 필요한 것을 반환합니다. 하지만 내 문제는이 논리를 입력 매개 변수를 사용하는 SP에 통합하는 것입니다.
select col.name from sysobjects obj inner join syscolumns col
on obj.id = col.id
where obj.name = 'AddressType'
order by obj.name
그리고 현재 나의 SP는 다음과 같습니다 : 그래서 여기에 성공적인 SQL 문입니다
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'
어떻게 받아 들일 수 있습니까? 이것 좀 먹을 래?
이것은 오류입니다. 내 대답을 참조하십시오. – egrunin