Sql server 2005 SQL Server 2005数据类型-难以获取使用当前数据类型的视图 我正在为移动电话创建一个新的数据库。它包含了很多关于手机、sim卡等的信息。我很难将表格中的信息转换成视图。我做了一些测试,但总是在某些列上收到错误。例如,其中一个字段是sim卡号,大家都知道它是一个长号码。我曾尝试将此数字设置为bigint、varchar和nvarchar,但始终收到一个错误,即“varchar值'value'的转换溢出了int列。超过了最大整数值”

Sql server 2005 SQL Server 2005数据类型-难以获取使用当前数据类型的视图 我正在为移动电话创建一个新的数据库。它包含了很多关于手机、sim卡等的信息。我很难将表格中的信息转换成视图。我做了一些测试,但总是在某些列上收到错误。例如,其中一个字段是sim卡号,大家都知道它是一个长号码。我曾尝试将此数字设置为bigint、varchar和nvarchar,但始终收到一个错误,即“varchar值'value'的转换溢出了int列。超过了最大整数值”,sql-server-2005,sqldatatypes,Sql Server 2005,Sqldatatypes,在数据库方面,我有相当的知识水平,但由于某些原因,我似乎无法为这些字段找到正确的数据类型。如果有人谁在这方面有更多的经验可以帮助我,这将是非常感谢 提前谢谢 SELECT dbo.Sims.Number, dbo.Sims.ACCOLC, dbo.Users.Title, dbo.Users.Name, dbo.Users.Section, dbo.Users.Directorate, dbo.UserHistory.StartDate, dbo.Use

在数据库方面,我有相当的知识水平,但由于某些原因,我似乎无法为这些字段找到正确的数据类型。如果有人谁在这方面有更多的经验可以帮助我,这将是非常感谢

提前谢谢

SELECT dbo.Sims.Number, 
  dbo.Sims.ACCOLC, 
  dbo.Users.Title, 
  dbo.Users.Name, 
  dbo.Users.Section, 
  dbo.Users.Directorate, 
  dbo.UserHistory.StartDate, 
  dbo.UserHistory.EndDate, 
  dbo.Users.Codes
FROM dbo.UserHistory 
INNER JOIN dbo.Users 
  ON dbo.UserHistory.[User] = dbo.Users.ID 
INNER JOIN dbo.Sims 
  ON dbo.UserHistory.Number = dbo.Sims.Number 
INNER JOIN dbo.Models 
  ON dbo.UserHistory.Model = dbo.Models.ID

我建议的一件事是检查您是否确实希望在每个表之间进行
内部联接。这需要在所有表中匹配行,如果没有匹配行,则不会得到结果

您可能希望尝试将
连接类型更改为
左连接类型

SELECT s.Number, 
  s.ACCOLC, 
  u.Title, 
  u.Name, 
  u.Section, 
  u.Directorate, 
  uh.StartDate, 
  uh.EndDate, 
  uh.Codes
FROM dbo.Users u
LEFT JOIN dbo.UserHistory uh
  ON u.ID = uh.[User] 
LEFT JOIN dbo.Sims s
  ON uh.Number = s.Number 
LEFT JOIN dbo.Models m
  ON uh.Model = m.ID

此版本将返回所有
用户
,即使其他表中没有匹配的行

为什么需要从基表中的任何数据类型转换数据类型?@MartinSmith-我不明白转换数据类型是什么意思,抱歉!显示一些代码。视图只是一个
SELECT
语句。你说“我试过把这个数字设为bigint、varchar和nvarchar”如果你不转换到那些数据类型,你的意思是什么?@MartinSmith-我知道这只是一个SELECT语句。请查看我的原始问题,以查看出现错误的视图代码。我怀疑您在一个表中更改了定义,但
UserHistory.Number
Sims.Number
仍定义为
int