[SQL] 어떻게 이름에 대괄호가 SQL 서버에 뭔가 이름을 바꾸려면?
SQL어떻게 이름에 대괄호가 SQL 서버에 뭔가 이름을 바꾸려면?
나는 책 카테고리로 이름을 바꿀 주위에 대괄호가 내 테이블 중 하나, [도서 카테고리]의 열을 가지고있다.
나는 다음과 같은 쿼리를 시도했다 :
sp_rename을 'BookPublisher. [Book_Category]', 'Book_Category', '열'
하지만 난이 오류가 발생했습니다 :
캔 사람의 도움 나?
해결법
-
==============================
1.당신은 당신이 그것을 만들 수와 동일한 방식으로 수행
당신은 당신이 그것을 만들 수와 동일한 방식으로 수행
exec sp_rename 'BookPublisher."[Book_Category]"', 'Book_Category', 'COLUMN';
다음은이조차 할 수 있다면 나는 시험에 만든 작은 샘플입니다. 처음 엔에서 그냥 내가 잘못 회전에서, 가능, 그것은 [] SQL 서버에서 사용할 수있는 방법에 대한 오해 가정 - 당신은 브래킷의 외부에 큰 따옴표를 사용해야합니다.
begin tran create table [Foo] ("[i]" int); exec sp_help 'Foo'; exec sp_rename 'Foo."[i]"', 'i', 'column '; exec sp_help 'Foo'; rollback tran
-
==============================
2.이 나를 위해 작동합니다 :
이 나를 위해 작동합니다 :
exec sp_rename ‘[dbo].[TableName].[OldColumnName]’, ‘NewColumnName’
-
==============================
3.큰 따옴표는 필요하지 않습니다. 당신은 단순히과 같이 대괄호를 닫는 두 배로 :
큰 따옴표는 필요하지 않습니다. 당신은 단순히과 같이 대괄호를 닫는 두 배로 :
EXEC sp_rename 'BookPublisher.[[Book_Category]]]', 'Book_Category', 'COLUMN';
당신은 QUOTENAME 함수를 사용하여 자신이 밖으로 찾을 수 있습니다 :
SELECT QuoteName('[Book_Category]'); -- Result: [[Book_Category]]]
이것은 부수적으로도 열을 만들기 위해 작동 :
CREATE TABLE dbo.Book ( [[Book_Category]]] int -- "[Book_Category]" );
-
==============================
4.그 오류가있어, 왜 궁금 해서요. 당신이에서 변화하는 열 이름이 존재하지 않는 경우이 정확한 오류를 얻을 수 있습니다. 당신은 여전히 오류가 발생하는 경우뿐만 아니라 이중으로 확인 할 수 있습니다.
그 오류가있어, 왜 궁금 해서요. 당신이에서 변화하는 열 이름이 존재하지 않는 경우이 정확한 오류를 얻을 수 있습니다. 당신은 여전히 오류가 발생하는 경우뿐만 아니라 이중으로 확인 할 수 있습니다.
from https://stackoverflow.com/questions/21168929/how-to-rename-something-in-sql-server-that-has-square-brackets-in-the-name by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 웹 SQL 데이터베이스 + 자바 스크립트 루프 (0) | 2020.05.28 |
---|---|
[SQL] 노드를 반복 SQL Server 용의 XML 경로 메이크업 (0) | 2020.05.28 |
[SQL] 쿼리의 반환에 날짜 삽입 곳에 아무도 없다 (0) | 2020.05.28 |
[SQL] SQL 서버 - 자연의 부족 / X Y가 사용 JOIN (필드) 가입 (0) | 2020.05.28 |
[SQL] 다른 데이터베이스에서 쿼리의 결과에 따라 데이터베이스 쿼리 (0) | 2020.05.28 |