我正在记录我的数据库,我想在我的数据库中创建一个所有索引的列表。我想这样做的原因是,我可以加班跟踪索引的更改。我目前有一个电子表格,其中包含自我创建该电子表格以来已更改的所有索引,但它没有所有索引。我希望能够生成列表,而不是编写每个索引的脚本。我玩过系统视图,但我无法弄清楚。
如何为每个索引生成索引列表和创建语句?
我需要解决我遇到的问题,我需要一些帮助来了解 sp_msforeachdb 的工作原理以解决我的问题。
每次运行 sp_msforeachdb 时都会发生错误 Msg 102, Level 15, State 1, Incorrect syntax near '61'
我的代码示例如下:
EXEC SP_msforeachdb 'SELECT ''?'' AS Database
FROM ?.sys.objects
WHERE name like ''%aetna%''
Run Code Online (Sandbox Code Playgroud)
但是,我将什么查询作为 sp_msforeachdb 的参数并不重要。每次我都遇到同样的错误。我确实有一个以“61s1d”开头的数据库,所以我认为它的数据库名称有问题,但老实说,我不知道 sp_msforeachdb 的幕后情况。
注意事项。
我怎样才能克服这个问题?
我正在将 SQL Server DB 迁移到新实例。
有人告诉我,可以从系统目录中的可用备份动态构建 RESTORE 脚本。
有谁知道一个示例脚本来做到这一点?
谢谢!
在我的数据库中,我有一个名为 spGen2_tblIE_SchedProcess_Update 的过程。
当我运行这个脚本时
select * from sys.objects
where name = 'spGen2_tblIE_SchedProcess_Update'
Run Code Online (Sandbox Code Playgroud)
在同一个数据库中,我有一个名为 tblIE_Step 的表
当我运行以下脚本时
select * from sys.objects
where name = 'tblIE_Step'
Run Code Online (Sandbox Code Playgroud)
然后我想查看对象的所有权限。
当我检查我的存储过程时,我运行了这个脚本:
select 'Proc' = SCHEMA_NAME(p.schema_id)+'.'+p.name
, 'Type' = per.state_desc, 'Permission' = per.permission_name
, 'Login' = pri.name, 'Type' = pri.type_desc
, *
From sys.objects as p
left join sys.database_permissions as per on p.object_id = per.major_id
left join sys.database_principals as pri on per.grantee_principal_id = pri.principal_id
where p.object_id = 87671360
Run Code Online (Sandbox Code Playgroud)
我得到了权限:
但是当我为我的桌子运行相同的东西时,我什么也没得到:
select 'Proc' = SCHEMA_NAME(p.schema_id)+'.'+p.name …
Run Code Online (Sandbox Code Playgroud) sql-server ×4
automation ×2
scripting ×2
catalogs ×1
logins ×1
permissions ×1
restore ×1
t-sql ×1