【发布时间】:2016-07-19 17:23:13
【问题描述】:
我创建了一个 SQL 过程,它用与原始值相同长度的 X 替换字段中的所有值。
Update Table
Set Name = Replicate('x', Len(Name))
我正在尝试更改此过程,以便在执行时只需将表和字段名称作为参数传递,而不是每次我想传递新字段时都编辑存储过程。有没有办法做到这一点?
当我想删除另一个字段中的值时,我认为执行语句应该是这样的:
Exec MyProcedure ‘Users’, ‘Email’
【问题讨论】:
-
您可以在具有动态 SQL 的存储过程中执行此操作,但这很危险。您可能想在这里解释您真正想要做的事情,以便我们可以提出一些更安全、更可靠的选择。
-
感谢您的回复。你是对的,这样的过程很危险,但它只会在测试数据库中执行,我有一个内置的检查来确保这一点。我怎么能用动态 SQL 做到这一点?
标签: sql stored-procedures execute replicate