如何自动将数据库名称导入脚本以在存储过程执行中使用?

时间:2016-11-14 12:05:03

标签: sql-server

我需要按照要求TRIM数据库。所以,我正在使用下面的脚本并手动提供数据库名称。我需要的是自动化脚本以自动获取数据库名称。任何人都可以建议如何自动获取数据库名称。

Use [Sales_backup_2015_05_31_230001_7137975]
Exec [spMaint_TrimTestDB] 1
Go

表示例如: 而不是手动提供Sales_backup_2015_05_31_230001_7137975我需要自动获取数据库名称

感谢。

2 个答案:

答案 0 :(得分:0)

如果没有传递参数,有一个函数DB_NAME()将返回当前数据库的名称。检查this

答案 1 :(得分:0)

我想动态SQL可能会帮助您在不同的数据库中运行SP:

DECLARE @sql nvarchar(max)

SELECT @sql = (
    SELECT N'Use '+QUOTENAME([name]) +' Exec [spMaint_TrimTestDB] 1;'
    FROM sys.databases
    WHERE database_id >= 5 AND [name] like 'Sales_backup%'
    FOR XML PATH('')
)

EXEC sp_executesql @sql

此脚本将创建并执行动态语句,如:

Use [sales_backup_2015] Exec [spMaint_TrimTestDB] 1;
Use [sales_backup_2016] Exec [spMaint_TrimTestDB] 1;
etc...