SQL Server不想转换为int

时间:2018-08-08 18:40:45

标签: sql sql-server

这是我的问题:我有一封电子邮件,其中包含消息。我试图将其包含在我的电子邮件中。

IF @StoreID > 1 
BEGIN
    SELECT 
        @message = 'ID' + StoreName 
    FROM
        db.Stores 
    WHERE
        StoreName = StoreID 
        AND StoreID = @StoreID

当我执行代码时,它会找到正确的存储,但是会说

  

将varchar值'MK'转换为数据类型int时转换失败。

@StoreID是一种int数据类型,与StoreID中的StoreOrders

我有两个表StoreOrdersStores

我需要将@StoreID转换为Stores中的名称,以便电子邮件出去时显示“ ID:'MK'”或任何ID。我计划有20个以上的ID,然后随着时间的流逝我们将添加新的ID,所以我不想对其进行大小写或硬编码。

我不想将“ MK”转换为int。我想在电子邮件中显示“ MK”。

1 个答案:

答案 0 :(得分:1)

根据您对架构的解释,我猜您正在沿着这些思路寻找东西,而这是通过将两个表连接起来而得到的。

SELECT
  @message = 'ID' + s.StoreName + '<data points from StoreOrders table, probably>'
FROM
  dbo.StoreOrders AS ord
  JOIN 
  dbo.Stores AS s
    ON
      s.StoreID = ord.StoreID
WHERE
  s.StoreID = @StoreID;