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
。