전체 테이블 이름 (스키마 + 이름)을받는 저장 프로 시저가 있습니다. 그 테이블을 찾아 특정 열 'Clumn_Name'이 있는지 확인해야합니다. 참으로 True 또는 False로 설정되어 있는지 확인하고 이에 대한 몇 가지 조치를 취해야합니다.열 값이 있으면 어떻게 가져올 수 있습니까?
내가 MSSQL 2008 R2
전체 테이블 이름 (스키마 + 이름)을받는 저장 프로 시저가 있습니다. 그 테이블을 찾아 특정 열 'Clumn_Name'이 있는지 확인해야합니다. 참으로 True 또는 False로 설정되어 있는지 확인하고 이에 대한 몇 가지 조치를 취해야합니다.열 값이 있으면 어떻게 가져올 수 있습니까?
내가 MSSQL 2008 R2
이 작동하지 않을 수 있습니다 사용하여 하나의 속임수입니다. 스키마와 테이블에 열이 있는지 확인하고 동적 열을 만들어 테이블에서 값을 선택합니다. 지금은 SQL 그냥 선택하고 'WHERE ID = 1'그래서 당신은 모든 행을 얻을하지 않습니다 설정합니다. 그냥 이걸 적응하고 결과와 함께 당신이 원하는대로 해 ..
DECLARE @schemaName varchar(1000) = '<enter correct schema name here>'
DECLARE @tableName varchar(1000) = '<enter correct table name here>'
DECLARE @columnName varchar(1000) = '<enter correct column name here>'
IF EXISTS(
SELECT 1
FROM sys.columns c
JOIN sys.tables t ON c.object_id = t.object_id
JOIN sys.schemas s ON s.schema_id = t.schema_id
WHERE s.name = @schemaName
AND t.name = @tableName
AND c.name = @columnName
) BEGIN
DECLARE @test nvarchar(1000);
DECLARE @sqlCommand nvarchar(1000)
SET @sqlCommand = 'SELECT TOP 1 @test = ' + @columnName + ' FROM ' + @schemaName + '.' + @tableName + ' WHERE ID = 1';
EXECUTE sp_executesql @sqlCommand, N'@test nvarchar(1000) OUTPUT', @[email protected];
END;
를 사용하고 여기에 Col_length
IF Col_length('scheme.Tablename', 'Column_Name') IS NOT NULL
SELECT 'True'
ELSE
SELECT 'False'
SELECT CASE WHEN COL_LENGTH('TABLE_NAME','COLUMN_NAME') IS NULL THEN 'FALSE' ELSE 'TRUE' END
고마워, 정확히 내가 뭘 필요합니다! 작은 노트 내가 작동하도록 실행 라인을 변경해야했습니다. N '@ test bit out', @test out – kresa