Jas*_*ers 2 sql-server alter-table table
我有一个看起来像这样的代码
declare @query = '
Alter Table Temp
Add NewColumn int
update Temp
set NewColumn = 100'
exec (@query)
Run Code Online (Sandbox Code Playgroud)
它将给出错误 NewColumn 不存在。但如果我在不使用 @query = '' 的情况下正常运行它,它运行得很好。另外,当您使用 @query = ' text ' 然后 exec 运行这样的代码时,它被称为什么?
您正在动态 SQL 中将它们作为一批执行。所以编译器不会允许它,因为在编译时该列还不存在。
一起执行时它不会起作用,这是不正确的。您正在单独的批次中逐行执行它们。
Alter Table Temp
Add NewColumn int
Run Code Online (Sandbox Code Playgroud)
update Temp
set NewColumn = 100
Run Code Online (Sandbox Code Playgroud)
Alter Table Temp
Add NewColumn int
update Temp
set NewColumn = 100
Run Code Online (Sandbox Code Playgroud)
所以你需要这样做
Alter Table Temp
Add NewColumn int;
exec sp_executesql N'
update Temp
set NewColumn = 100
';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4358 次 |
| 最近记录: |