Sql 远程数据库部署后,无法将值NULL插入列“Id”错误

Sql 远程数据库部署后,无法将值NULL插入列“Id”错误,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我已将SQL Server Express 2008数据库部署到我的托管服务器。在我的本地计算机上,一切正常,但在远程主机上,我遇到了一个错误: “/”应用程序中出现服务器错误 无法将值NULL插入到表的“Id”列中 “mttrnv_12.dbo.Customer”;列不允许空值。插入失败。 声明已终止 表结构: Id int Unchecked CustomerGuid uniqueidentifier Unchecked Username nvarchar(1000)

我已将SQL Server Express 2008数据库部署到我的托管服务器。在我的本地计算机上,一切正常,但在远程主机上,我遇到了一个错误:

“/”应用程序中出现服务器错误

无法将值NULL插入到表的“Id”列中 “mttrnv_12.dbo.Customer”;列不允许空值。插入失败。 声明已终止

表结构:

Id  int Unchecked
CustomerGuid    uniqueidentifier    Unchecked
Username    nvarchar(1000)  Checked
Email   nvarchar(1000)  Checked
Password    nvarchar(MAX)   Checked
PasswordFormatId    int Unchecked
PasswordSalt    nvarchar(MAX)   Checked
AdminComment    nvarchar(MAX)   Checked
LanguageId  int Checked
CurrencyId  int Checked
TaxDisplayTypeId    int Unchecked
IsTaxExempt bit Unchecked
VatNumber   nvarchar(MAX)   Checked
VatNumberStatusId   int Unchecked
SelectedPaymentMethodSystemName nvarchar(MAX)   Checked
CheckoutAttributes  nvarchar(MAX)   Checked
DiscountCouponCode  nvarchar(MAX)   Checked
GiftCardCouponCodes nvarchar(MAX)   Checked
UseRewardPointsDuringCheckout   bit Unchecked
TimeZoneId  nvarchar(MAX)   Checked
AffiliateId int Checked
Active  bit Unchecked
Deleted bit Unchecked
IsSystemAccount bit Unchecked
SystemName  nvarchar(MAX)   Checked
LastIpAddress   nvarchar(MAX)   Checked
CreatedOnUtc    datetime    Unchecked
LastLoginDateUtc    datetime    Checked
LastActivityDateUtc datetime    Unchecked
BillingAddress_Id   int Checked
ShippingAddress_Id  int Checked
        Unchecked
在远程主机上,Id列不允许空值


您应该仔细检查远程主机是否使用与本地主机相同的架构。并非如此。

问题出现在MSSQL 2008导出对话框读取中。主要是,远程主机上没有完整的数据拷贝另一个数据库。为了解决这个问题,我使用了名为SQL Tools的免费工具,您可以下载它。它的作用-比较本地和远程数据库。当检测到差异时,程序会自动同步数据库以实现100%匹配。就这样

请检查该列在远程服务器上是否仍标记为标识列。另外,如果您需要特定帮助,请告诉我们您尝试发送的表的结构和插入查询。我们不需要堆栈转储。只是关于表结构和您正在尝试的insert语句的详细信息。关于insert语句我不确定,因为我使用的是一个名为NopCommerce的工具,我试图部署的数据库是我在本地计算机上安装NopCommerce时创建的基础。如何使用MSSQL Server Management Studio实现这一点?本地和主机上的模式相同-dbo,查找表的属性。@mttrnv:我怀疑Borelid的“同一架构”并不是指相同的架构名称,而是指相同的架构定义,即列类型、约束等,包括NULL/not NULL属性,本地模式中的本地表应该与远程端的表匹配。模式完全匹配我不明白如果在本地机器上工作正常,这怎么可能,但在远程主机上复制相同的文件并通过MSSQL Server Management Studio导出数据库和将数据库简单连接到站点后,就会得到这样的结果。很抱歉英语不好。@mttrnv如果两个表在两个位置都相同,那么差异一定是在应用程序行为上。为什么您的代码会尝试在远程端插入NULL,而不是本地端?