更改表 my_table 添加 @column INT
如果我想使用变量作为新列的名称,这在 MS SQL 中可行吗?
不起作用的示例:
ALTER TABLE my_table ADD @column INT
这对我来说非常有用:
EXEC ('ALTER TABLE my_table ADD ' + @column + ' INT')
If i want to use a variable as name of the new column, is this posible in MS SQL?
Example that dont work:
ALTER TABLE my_table ADD @column INT
This worked great for me:
EXEC ('ALTER TABLE my_table ADD ' + @column + ' INT')
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这可以使用动态 sql 构建 DDL 并使用 EXEC 命令来执行字符串。
请参阅这篇文章。
我还要补充一点,当您冒险进入动态 sql 领域时,您需要注意不要让自己暴露于 SQL注入攻击。始终清理传入的参数。
正如 Philip 提到的 - 在执行此操作之前请仔细考虑。事实上,它是可能的,但这并不意味着它是一件好事......
Erland Sommarskog 写了一篇关于使用动态 sql 的广泛文章 -
This is possible using dynamic sql to build your DDL and using the
EXEC
command to execute the string.See this article.
I will also add that the moment you venture to the land of dynamic sql, you need to take care to not expose yourself to SQL Injection attacks. Always clean up the parameters coming in.
As Philip mentions - think long and hard before doing this. The fact that it is possible does not make it a good thing...
Erland Sommarskog wrote an extensive article about using dynamic sql - The curse and blessings of dynamic SQL which I recommend reading fully.
看一下 (执行 (Transact-SQL))
Have a look at (EXECUTE (Transact-SQL))