0
나는 varchar
에 열 nvarchar
의 모든 유형을 변경하고 nchar
char
에 다음이 스크립트를 썼다 :액세스
SELECT DISTINCT
TABLE_NAME, COLUMN_NAME, DATA_TYPE
INTO
#Temp
FROM
DATA.INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA IN ('SCHEMA1', 'SCHEMA2')
AND DATA_TYPE LIKE 'nvar%'
OR DATA_TYPE LIKE 'nch%'
SELECT DISTINCT TABLE_NAME
FROM #Temp
WHILE (SELECT COUNT(*) FROM #Temp) > 0
BEGIN
IF DATA_TYPE LIKE 'nvarchar'
ALTER TABLE_NAME
ALTER COLUMN_NAME CAST (COLUMN_NAME AS varchar)
ELSE IF DATA_TYPE LIKE 'nchar'
ALTER TABLE_NAME
ALTER COLUMN_NAME CAST (COLUMN_NAME AS char)
ELSE
DELETE #Temp
END
내 질문은 내가 Temp
각 element
에 액세스 할 수있는 방법 때문에 항상 Foreach
에 의해 수행되며 SQL Server에서이 루프에 액세스 할 수 없습니다.
많은 수의 테이블이 있고 확인하고 싶기 때문에 아직 스크립트를 실행하고 있지 않습니다.
아무도 내 loop while
을 변경하여 Temp
의 각 요소에 액세스하는 방법을 알려주십시오.
덕분에 많은
왜 지구상에서 이것을 원하십니까?! – DavidG
미안합니다. – vero
nvarchars를 varchars로 변경 – Jamiec