Sql server SQL-更新、删除、插入-Whatif场景
前几天我在读一篇文章,文章展示了如何以whatif类型的场景运行sqlupdate、Insert或Deletes。我不记得他们提到的参数,现在我找不到这篇文章。不知道我是不是在做梦 不管怎样,有人知道SQL2008中是否有一个参数允许您在不实际提交的情况下尝试插入、更新或删除吗?它将实际记录或向您显示它将更新的内容。如果参数的行为与预期一致,则删除该参数并运行它。您的意思是 当SET NOEXEC处于启用状态时,SQL Server 编译每批Transact-SQL 语句,但不执行它们。 当SET NOEXEC关闭时,所有批次 在编译后执行 请注意,这不会警告/指示诸如密钥冲突之类的事情。您的意思是 当SET NOEXEC处于启用状态时,SQL Server 编译每批Transact-SQL 语句,但不执行它们。 当SET NOEXEC关闭时,所有批次 在编译后执行Sql server SQL-更新、删除、插入-Whatif场景,sql-server,sql-server-2008,sql,Sql Server,Sql Server 2008,Sql,前几天我在读一篇文章,文章展示了如何以whatif类型的场景运行sqlupdate、Insert或Deletes。我不记得他们提到的参数,现在我找不到这篇文章。不知道我是不是在做梦 不管怎样,有人知道SQL2008中是否有一个参数允许您在不实际提交的情况下尝试插入、更新或删除吗?它将实际记录或向您显示它将更新的内容。如果参数的行为与预期一致,则删除该参数并运行它。您的意思是 当SET NOEXEC处于启用状态时,SQL Server 编译每批Transact-SQL 语句,但不执行它们。 当SE
请注意,这不会警告/指示诸如密钥冲突之类的事情。我相信您所说的是 BEGIN TRANSACTION为发出语句的连接启动本地事务。根据当前的事务隔离级别设置,为支持连接发出的Transact-SQL语句而获取的许多资源将被事务锁定,直到使用COMMIT事务或ROLLBACK事务语句完成。长时间未完成的事务会阻止其他用户访问这些锁定的资源,也会阻止日志截断
我相信你说的是 BEGIN TRANSACTION为发出语句的连接启动本地事务。根据当前的事务隔离级别设置,为支持连接发出的Transact-SQL语句而获取的许多资源将被事务锁定,直到使用COMMIT事务或ROLLBACK事务语句完成。长时间未完成的事务会阻止其他用户访问这些锁定的资源,也会阻止日志截断
我不知道任何支持事务的SQL服务是否具有SQL2008特定功能。您可以这样做:
BEGIN TRANSACTION
-- make changes
DELETE people WHERE name LIKE 'X%'
DELETE people WHERE name LIKE 'D%'
EXEC some_proc_that_does_more_work
-- check the DB state after the changes
SELECT COUNT(*) FROM people
-- undo
ROLLBACK TRANSACTION
-- confirm the DB state without the changes
SELECT COUNT(*) FROM people
(您可能更喜欢在启动事务之前执行可选的“确认”步骤,而不是在回滚事务之后,但我一直都是这样做的,因为它会将两个可能相同的代码部分放在一起,以便于编辑)
如果您使用类似于此的东西,而不是特定于SQL2008的东西,那么该技术也应该可以转移到其他RDB(如果需要,只需更新语法)。我不知道任何支持事务的SQL服务有特定于SQL2008的功能。您可以这样做:
BEGIN TRANSACTION
-- make changes
DELETE people WHERE name LIKE 'X%'
DELETE people WHERE name LIKE 'D%'
EXEC some_proc_that_does_more_work
-- check the DB state after the changes
SELECT COUNT(*) FROM people
-- undo
ROLLBACK TRANSACTION
-- confirm the DB state without the changes
SELECT COUNT(*) FROM people
(您可能更喜欢在启动事务之前执行可选的“确认”步骤,而不是在回滚事务之后,但我一直都是这样做的,因为它会将两个可能相同的代码部分放在一起,以便于编辑)
如果您使用类似于此的内容,而不是特定于SQL2008的内容,那么该技术也应该可以转移到其他RDB(如果需要,只需更新语法)。有一个“验证SQL”功能,可以根据错误的表/列名等检查查询。也许您正在谈论SSMS 2008中的一些新功能,类似于…有一个“验证SQL”功能,该功能检查查询是否有错误的表/列名等。也许您正在谈论SSMS 2008中类似的一些新功能…好的,终于找到了答案。我把这和我与PowerShell合作的另一个项目混淆了。PowerShell有一个“whatif”参数,可用于显示在删除文件之前要删除的文件
我向那些花时间试图找到此端口答案的人表示歉意,并向那些作出响应的人表示感谢。好的,终于找到了答案。我把这和我与PowerShell合作的另一个项目混淆了。PowerShell有一个“whatif”参数,可用于显示在删除文件之前要删除的文件
我向那些花时间试图找到此端口答案的人表示歉意,也向那些作出响应的人表示感谢。我迟到了七年多,但我怀疑所讨论的功能也可能是输出条款。当然,它可以用于在t-sql存储过程中实现类似于Powershell的whatif功能 在每个insert/update/delete/merge查询中使用此选项,让SP输出其所做更改的有意义的结果集,例如,输出表名和作为前两列执行的操作,然后输出所有更改的列 然后,如果需要,只需回滚更改