我被困在以下 sql server 上:
DECLARE @sql AS NVARCHAR(500),@db as varchar(50),@value AS CHAR(129);
SET @db = 'SSCT1';
SET @value = '1806-11-801-1000';
SET @sql = 'SELECT ACTINDX FROM ' + quotename(@db)
+ '.[dbo].[GL00105] WHERE ACTNUMST = ' + @value;
EXEC (@sql);
当我在 sql server 中运行它时,我得到:转换 varchar 值 '1806-11-801-1000 时转换失败
我检查了我使用 where 子句的字段,它与声明中的类型 (char(129) 相匹配,所以我不确定它试图转换什么。
我正在尝试构建一个 sql 语句,除了值之外,它还将接受 db 名称作为变量。有什么想法吗?
谢谢