July 12, 2009 at 11:15 am
Comments posted to this topic are about the item Table Index Store and Create
July 29, 2009 at 8:34 pm
thanks.. very good post..
This for storing all index to table, after storing the informtion to table, how to restore it when i needed? Please let me know the query for restoring the indexes from newly created table data
July 29, 2009 at 9:16 pm
declare @cmd varchar (max)
Select @cmd= "Create index "+IndexName + "......From tblDBAIdxMetadt
exec (@cmd)
You got the idea 🙂 I will post a better Query tomorrow.
July 29, 2009 at 9:40 pm
Thanks for reply.. can we store the relations to the same table and can we restore it?
July 30, 2009 at 8:43 am
See scripts Truncate all Tables There you will find a script to save and restore the table relationships. Normally you want to keep that kind of data separated from it.
July 30, 2009 at 8:46 am
Here is a better example of how to restore the indexes :
If Exists (select distinct
SchemaOwner
,TableName
,AllColName
from tblDBAIdxMetadt
where IsClustered = 1
and UniqueType 'PRIMARY KEY'
)
begin
declare @IndexName varchar(255)
,@SchemaOwner varchar (255)
,@TableName varchar (255)
,@ColumnList varchar (1000)
,@Sqlcmd varchar (2000)
set @IndexName = ?
set @SchemaOwner = ?
set @TableName = ?
set @ColumnList = ?
select @sqlcmd = 'CREATE CLUSTERED INDEX '+ltrim(rtrim(@IndexName))+' ON '+ltrim(rtrim(@SchemaOwner))+'.'+ltrim(rtrim(@TableName))+' ( '+ltrim(rtrim(@ColumnList))+' ) WITH (STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
'
exec (@sqlcmd)
end
You can used a cursor or while loop to generated or execute the scripts by filling the information with the ? marks.
July 30, 2009 at 8:51 am
This will be a way to save relations from a table.
--Create Table to store constraint information
IF NOT EXISTS (Select [name] from sys.tables where [name] = 'T_FK_Xref' and type = 'U')
Create table DatabaseName.dbo.T_FK_Xref (
ID int identity (1,1),
ConstraintName varchar (255),
MasterTable varchar(255),
MasterColumn varchar(255),
ChildTable varchar(255),
ChildColumn varchar(255),
FKOrder int
)
go
--Store Constraints
insert into DatabaseName.dbo.T_FK_Xref(ConstraintName,MasterTable,MasterColumn,ChildTable,ChildColumn,FKOrder)
SELECT object_name(constid) as ConstraintName,object_name(rkeyid) MasterTable
,sc2.name MasterColumn
,object_name(fkeyid) ChildTable
,sc1.name ChildColumn
,cast (sf.keyno as int) FKOrder
FROM sysforeignkeys sf
INNER JOIN syscolumns sc1 ON sf.fkeyid = sc1.id AND sf.fkey = sc1.colid
INNER JOIN syscolumns sc2 ON sf.rkeyid = sc2.id AND sf.rkey = sc2.colid
ORDER BY rkeyid,fkeyid,keyno
September 11, 2009 at 12:20 pm
Running the code as is, and adding a tablename from a SQL Server 2005 database, gives the following error:
Msg 102, Level 15, State 1, Line 108
Incorrect syntax near 'end'.
Any ideas what's wrong. The syntax looks fine. I'm using the SQL Server query editor and selecting the database from the combo box in the menu bar at the top of the editor.
Thanks,
Ed
May 24, 2016 at 7:04 am
Thanks for the script.
May 24, 2016 at 8:27 am
Iwas Bornready (5/24/2016)
Thanks for the script.
Maybe you should see if you can rewrite the script to use the system views instead of the SQL 2000 compatibility views. That would be more worthwhile than just these ridiculous "Thanks for the script" posts of yours to pad your post count.
Viewing 10 posts - 1 through 9 (of 9 total)
You must be logged in to reply to this topic. Login to reply