我有这个问题:
DECLARE @selectsql nvarchar(4000),
DECLARE @cnt int
select @selectsql = ' SELECT ' + @cnt + '= COUNT(*) FROM Vwbckup'
print @selectsql
print @cnt
EXEC sp_executesql @selectsql
Run Code Online (Sandbox Code Playgroud)
当我执行查询时,我收到此错误:
将varchar值'SELECT'转换为数据类型int时转换失败.
您的@cnt变量是INT类型 - 您需要将其强制转换为NVARCHAR以连接在一起:
DECLARE @selectsql nvarchar(4000),
DECLARE @cnt int
SELECT @selectsql = N' SELECT ' + CAST(@cnt AS NVARCHAR(10)) + N'= COUNT(*) FROM Vwbckup'
Run Code Online (Sandbox Code Playgroud)
另外:您应该在字符串文字前添加前缀N以指示Unicode(NVARCHAR)字符串
更新:上一个命令根本没有任何意义....你的意思是创建这个命令字符串吗?
SELECT @selectsql = N' SELECT @cnt = COUNT(*) FROM Vwbckup'
Run Code Online (Sandbox Code Playgroud)
然后执行它?
| 归档时间: |
|
| 查看次数: |
13456 次 |
| 最近记录: |