SQL 索引重新命名,如何重建SQL索引 要具體的命令

2025-03-25 23:30:18 字數 4586 閱讀 1249

1樓:網友

看一下sql server的聯機幫助,你那樣的用法不能重新命名索引。

語法:sp_rename [ objname = object_name' ,newname = new_name' [objtype = object_type' ]

引數: @objname = object_name'

使用者物件或資料型別的當前限定或非限定名稱。如果要重新命名的物件是表中的列,則 object_name 的格式必須是 。如果要重新命名的對巧答象是索引,森高則 object_name 的格式必須是 。

只有在指定了合法的物件時才必須使用引號。如果提供了完全限定名稱,包括資料庫名稱,則該資料庫名稱必須是當前資料庫的名稱。object_name 的資料型別為 nvarchar(776),無預設值。

newname = new_name'

指定物件的新名稱。new_name 必須是名稱的一部分,並且必須遵孝春慧循識別符號的規則。newname 的資料型別為 sysname,無預設值。

注意: 觸發器名稱不能以 # 或 ## 開頭。

objtype = object_type'

要重新命名的物件的型別。object_type 的資料型別為 varchar(13),預設值為 null,可取下列值之一。

column

要重新命名的列。

database

使用者定義資料庫。重新命名資料庫時需要此物件型別。

index使用者定義索引。

object

在 中跟蹤的型別的專案。例如,object 可用於重新命名約束(check、foreign key、primary/unique key)、使用者表和規則等物件。

userdatatype

通過執行 create type 或 sp_addtype 新增別名資料型別或 clr 使用者定義型別。

示例:重新命名索引:

以下示例將 ix_productvendor_vendorid 索引重新命名為 ix_vendorid。

use adventureworks;

goexec sp_rename n'', n'ix_vendorid', n'index';go

2樓:網友

索引是不可更改的,想更改必須刪除重新建。

3樓:羽益

未能找到名為 'i_t_score' 的項。

不是說了嗎?

sql問題,索引的修改。alter index語句如何使用,謝謝

4樓:網友

修正一下,alter index語法,不能用於修改索引定義,如新增或刪除列,或更改列的順序。

5樓:射手幽靈伊

直接刪除,然後重建吧。

6樓:

索引只能在企業管理器中修改。

sql在設定約束和索引時,有時會取個名字,請問這個名字是幹嘛用的?怎麼使用?它存在**了?

7樓:匿名使用者

給約束取名字, 目的是將來你可以比較容易的刪除掉。

否則你要自己去查詢資料字典表。

例如下面的例子。

唯一約束的名字, 是 t_123, 那麼當我不需要這個約束的時候。

如果我知道名字, 那麼可以直接去刪除掉。

建立測試表。

create table test_123 (id int,value varchar(10)go- 建立 unique 約束。

alter table test_123

add constraint t_123 unique (value);

go- 刪除 unique 約束。

alter table [test_123]drop constraint [t_123];

go如果我不指定約束名稱, 例如:

1> alter table test_sub2> add unique (value)3> go

那麼這種情況下, 如果我要刪除這個約束, 就需要去查詢資料字典表。

由於各個資料庫廠商的資料字典表各有不同, 下面簡單列一些常用的資料庫。

oracle 參考 user_constraints 檢視。

sql server

對於 唯一約束, 參考 檢視裡面的 is_unique_constraint = 1 的資料。

對於外來鍵約束,參考 檢視裡面的資料。

對於 check約束, 參考 檢視裡面的資料。

對於 mysql

可以參考 information_ 裡面的資料。

8樓:虎嗅薔薇的李小多

任何物件都有名字,也可以單一的增加或者刪除,都有對應的指令碼。

關於修改sql server2005資料庫的名稱及表名,列名,索引名 修改資料庫名稱a為b: a

9樓:sql的藝術

列名茄殲修改絕對不能使顫衫衝用sp_raname你可以這樣做。

1、select 舊列名1 as 新列名1,舊列名2 as 新列名2,舊列名3 as 新列名3 ..into 新表名 from 表名塌凳。

2、drop table 表名。

索引,需要重新建立。

10樓:網友

exec sp_rename 'table_name', newtablename'猛蠢簡 重命枝褲名錶檔皮。

exec sp_rename 'table_', newcolname', column' 重新命名列。

sql中索引改名為什麼要加exec,改索引名的命令是exec sp_rename但是不打exec也好使,那exec的作用是什麼

11樓:9陳通

exec 是標準執行語句。

在exec後面還可以跟很多東西的,比如說儲存過程名稱,不如說還可以執行乙個拼接的sql語句。

例如:exec 'select * from 表 where 條件'

注意我這個查詢語句是用引號引起來的。

如何重建sql索引 要具體的命令

12樓:網友

create index index_nameontable_name | view_name(colume_name[1,,,n])

index_name 是索引名稱。

table_name|view_name 是表的名稱或檢視名稱。

colume_name是表或檢視的哪些列上建索引。

13樓:網友

1:你可以建立乙個表,儲存重建的表名和索引鍵。

2:建立儲存過程 迴圈重建表的索引,dbcc indexdefrag (資料庫名,' 表名','索引鍵 )

sql server 查詢語句 索引轉換成對應的名稱

14樓:網友

就是join關聯查詢,例如表:

aa(c1,cola)

bb(c2,colb)

cc(col1,col2,c1,c2)

查詢語句可以寫成。

select ,,from cc

left join aa on

left join bb on

15樓:網友

你這個不用寫儲存過程呀,連線查詢不就搞定了。

select id, col0, col1 , type] as col2 from [testtable] left join [type] on [testtable].col2 = [type].[id].

用sql語句 sp_rename 怎樣將儲存過程重新命名?

16樓:匿名使用者

sp_helptext 'newname' 執行上面的系統儲存過程,會發現,原始定義並沒有被改名。所以用sp_rename去改儲存過程是不可靠的。

17樓:匿名使用者

sp_rename 'proc_getstudent_3','newname'

參考語法。sp_rename [ objname = ] 'object_name' , newname = ] 'new_name'

objtype = ] 'object_type' ]

引數[@objname =] 'object_name'

是使用者物件(表、檢視、列、儲存過程、觸發器、預設值、資料庫、物件或規則)或資料型別的當前名稱。如果要重新命名的物件是表中的一列,那麼 object_name 必須為 形式。如果要重新命名的是索引,那麼 object_name 必須為 形式。

object_name 為 nvarchar(776) 型別,無預設值。

newname =] 'new_name'

是指定物件的新名稱。new_name 必須是名稱的一部分,並且要遵循識別符號的規則。newname 是 sysname 型別,無預設值。

objtype =] 'object_type'

是要重新命名的物件的型別。object_type 為 varchar(13) 型別,其預設值為 null,可取下列值。

SQL建立索引的目的是什麼

一 sql建立索引的目的如下 1 通過唯一性索引 unique 可確保資料的唯一性 2 加快資料的檢索速度 3 加快表之間的連線 4 減少分組和排序時間 5 使用優化隱藏器提高系統效能。二 建立sql索引的語法 create unique clustered nonclustered 索引型別 in...

SQL遊標如何使用,SQL遊標怎麼用

遊標可以從資料庫中查詢出一個結果集,在你關閉它之前,你可以反覆使用這個結果集,讀取這個結果集中的任意行任意欄位的內容,一般在儲存過程或前臺程式中常見。你學過fox嗎?可以說是和那個裡面的差不多吧,就是一個意思 遊標可以從庫裡的結果集裡面取東西,一條一條的 在sql指令碼中怎麼使用遊標?declare...

sql語句分組查詢前10條資料,sql如何實現分組並select出每組前10個

class classid classnameproduct classid proname numselect top 10 c.classid c.classname,sum p.num from class c,product p where p.classid c.classid group...