Puts future space allocations for a table or index on a particular segment.
sp_placeobject segname, objname
is the name of the segment on which to locate the table or index.
is the name of the table or index for which to place subsequent space allocation on the segment segname. Specify index names in the form “tablename.indexname”
Places all subsequent space allocation for the table authors on the segment named “segment3”:
sp_placeobject segment3, authors
Places all subsequent space allocation for the employee table’s index named employee_nc on the segment named indexes:
sp_placeobject indexes, 'employee.employee_nc'
You cannot change the location of future space allocations for system tables.
Placing a table or an index on a particular segment does not affect the location of any existing table or index data. It affects only future space allocation. This include all existing partitions in the table/index and any new partitions added later if no segment is specified for a new partition. Changing the segment used by a table or an index can spread the data among multiple segments.
If you use sp_placeobject with a clustered index, the table moves with the index.
You can specify a segment when you create a table or an index with create table or create index. You can also specify a segment at the partition level as part of a partition definition. Partitions without segment specification uses the segment specified at the table/index level. If no segment is specified for the table/index level, the data goes on the default segment.
When sp_placeobject splits a table or an index across more than one disk fragment, the diagnostic command dbcc displays messages about the data that resides on the fragments that were in use for storage before sp_placeobject executed. Ignore those messages.
The permission checks for sp_placeobject differ based on your granular permissions settings.
Granular permissions enabled |
With granular permissions enabled, you must be the table owner or a user with manage database privilege. |
Granular permissions disabled |
With granular permissions disabled, you must be the database owner, table owner, or a user with sa_role. |
Values in event and extrainfo columns from the sysaudits table are:
Event |
Audit option |
Command or access audited |
Information in extrainfo |
---|---|---|---|
38 |
exec_procedure |
Execution of a procedure |
|
Commands alter table, dbcc
System procedures sp_addsegment, sp_dropsegment, sp_extendsegment, sp_helpindex, sp_helpsegment