데이터베이스의 모든 셀에서 공백을 NULL로 바꾸어야합니다. SQL 서버 2008 r2. 효율적인 무언가를 찾고 있는데 커서처럼 보이는 것이 유일한 방법일까요?데이터베이스에서 foreach 셀을 쿼리하는 방법
답변
커서 답 :
ypercube이 어려운 부분을 한 결코 없습니다. 이 정보를 가져 와서 반복하면서 각 테이블의 각 열에 대한 업데이트 명령문을 실행해야합니다. WHILE 문을 사용하여이를 수행 할 수 있습니다.
--Set database to use
USE [MyDatabase];
GO
--Create table variable to hold table/column pairs
DECLARE @table TABLE (
[Key] BIGINT PRIMARY KEY IDENTITY (1, 1),
[TABLE_NAME] VARCHAR(100),
[COLUMN_NAME] VARCHAR(100)
);
--Populate table variable
INSERT INTO @table ([TABLE_NAME], [COLUMN_NAME])
SELECT [TABLE_NAME], [COLUMN_NAME]
FROM MyDatabase.INFORMATION_SCHEMA.COLUMNS
WHERE [TABLE_SCHEMA] = 'dbo'
AND [IS_NULLABLE] = 'YES';
--Initialize counting variables
DECLARE @counter BIGINT = 1;
DECLARE @max BIGINT = (SELECT COUNT(1) FROM @table);
--Iterate through each pair
WHILE @counter <= @max
BEGIN
--Assign the current pair values to variables
DECLARE @TableName VARCHAR(100), @ColumnName VARCHAR(100);
SELECT @TableName = [TABLE_NAME], @ColumnName = [COLUMN_NAME]
FROM @table
WHERE [Key] = @counter;
--Execute dynamic SQL
EXEC
(
'UPDATE [' + @TableName + ']' +
'SET [' + @ColumnName + '] = NULL' +
'WHERE RTRIM([' + @ColumnName + ']) = '''';'
);
--Increment the counter
SET @counter = @counter + 1;
END
너무 재밌 네요. 나는 1 시간 전에 똑같은 대본을 썼다. 감사합니다. @ypercube – user194076
괜찮습니다. 도와 줘서 다행 :) – JOpuckman
공백을 정의하는 방법에 따라 달라집니다. 다음은 효과가 있습니까?
update mytable set mycolumn = null where len(rtrim(ltrim(mycolumn))) = 0
모든 셀과 모든 테이블에서 쿼리를 수행해야합니다. 하나의 열뿐만 아니라 – user194076
먼저 INFORMATION_SCHEMA를 사용하여, null 허용 입력 CHAR
또는 VARCHAR
의 모든 테이블과 열을 찾을 수 :
SELECT TABLE_NAME, COLUMN_NAME
FROM MyDatabase.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'dbo'
AND IS_NULLABLE = 'YES'
- 1. MMS 데이터베이스에서 MMS 발신자와 텍스트를 쿼리하는 방법
- 2. SQL Server 2008 데이터베이스에서 SQL XML의 XML을 쿼리하는 방법
- 3. Rails3에서 모델이없는 데이터베이스에서 쿼리하는 방법은 무엇입니까?
- 4. 테이블 셀을 선택했을 때 데이터베이스에서 값을 전달하는 방법
- 5. SPView 개체를 쿼리하는 방법
- 6. 데이터베이스 스키마가 있는지 쿼리하는 방법
- 7. 큰 데이터를 페이지하고 쿼리하는 방법 #
- 8. RavenDB를 쿼리하는 일반적인 방법
- 9. LINQ에서 목록을 쿼리하는 방법
- 10. Java에서 XML을 쿼리하는 방법
- 11. 데이터 테이블을 쿼리하는 방법
- 12. LinkedServer에서 #TempTable을 쿼리하는 방법
- 13. 오래된 트윗을 쿼리하는 방법?
- 14. int 값을 쿼리하는 방법
- 15. 접합 테이블을 쿼리하는 방법
- 16. Linq를 사용하여 XML을 쿼리하는 방법
- 17. jqGrid에서 셀을 편집하는 방법?
- 18. UITableView에서 셀을 업데이트하는 방법?
- 19. 사용자 셀을 저장하는 방법
- 20. UITableView에서 셀을 재정렬하는 방법
- 21. 엔티티 프레임 워크 4에서 엔티티를 쿼리하는 방법
- 22. PHP에서 foreach 루프를 최적화하는 방법
- 23. SQL 데이터베이스에서 악성 또는 의심스러운 데이터를 쿼리하는 방법은 무엇입니까?
- 24. eXist 서버 XML 데이터베이스에서 데이터를 쿼리하는 방법은 무엇입니까?
- 25. mysql 데이터베이스에서 10 개의 임의의 고유 레코드를 쿼리하는 방법은 무엇입니까?
- 26. 데이터베이스의 별칭을 사용하지 않고 다른 데이터베이스에서 테이블을 쿼리하는 방법은 무엇입니까?
- 27. 두 데이터베이스에서 쿼리하는 데 도움이 필요합니다 (처음 시도하는 경우)
- 28. GridView에서 빈 셀을 무시하는 방법
- 29. NHibernate에서 많은 개체를 쿼리하는 방법
- 30. mongoDB에서 여러 결과를 쿼리하는 방법
데이터베이스 서버에있는 모든 데이터베이스의 모든 테이블의 모든 행 (열)은 어떻게됩니까? –
@ypercube 단 하나의 데이터베이스 – user194076
'INFORMATION_SCHEMA'와 동적 SQL을 사용해야합니다. –