昨天发生了不好的事情。
前一段时间创建的视图被某人修改,最终破坏了报告。很遗憾。有人(有意或无意)在 PRODUCTION 数据库中进行了此修改。
我的问题:有没有办法(脚本/软件/免费软件等)让我们知道谁(用户名)做了这个修改,这样我就可以撤销该用户对生产数据库的访问权限。
如果我的问题不清楚,请发表评论。
我有一个 SQL 脚本,在其中生成数据库及其表、存储过程、视图等。我使用以下脚本生成数据库和所有内容。我能够生成表,但在存储过程中它给出了一个错误:
'CREATE/ALTER PROCEDURE' must be the first statement in a query batch.'
Run Code Online (Sandbox Code Playgroud)
这是代码。我使用了一个if/else块,所以不能使用一个go语句。我检查数据库是否存在并采取适当的措施。任何人都有解决方案?
编辑后:
IF EXISTS(SELECT name FROM sys.databases WHERE name = 'SampleDB')
begin
PRINT 'Exist.'
end
Else
begin
CREATE DATABASE SampleDB
exec sp_dboption N'SampleDB', N'autoshrink', N'false'
exec sp_dboption N'SampleDB', N'ANSI null default', N'false'
exec sp_dboption N'SampleDB', N'recursive triggers', N'false'
exec sp_dboption N'SampleDB', N'ANSI nulls', N'false'
exec sp_dboption N'SampleDB', N'concat null yields null', N'false'
exec sp_dboption N'SampleDB', N'cursor close on commit', N'false'
exec sp_dboption …Run Code Online (Sandbox Code Playgroud) 在测试、开发和生产环境中,我经常收到更改存储过程的请求。
我想要一种简单的方法来在更改之前将存储过程的当前代码保存到我的“ tablebackups ”数据库中的一个表中- 这是一个我在更新或删除记录之前保存记录的数据库。
我在想这样的事情:
sp_helptext 'sp_myprocedure'
Run Code Online (Sandbox Code Playgroud)
使用的想法是这样的:
select * into tablebackups.dbo.my_procedure_20150827_1220
from ss_save_my_procedure 'my_procedure'
Run Code Online (Sandbox Code Playgroud)
有人已经为此开发了解决方案吗?