远程数据库部署后,无法将值NULL插入到列'Id'错误中

时间:2012-02-20 19:17:16

标签: sql sql-server sql-server-2008

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

  应用程序中的服务器错误。

     

无法将值NULL插入列'Id',表中   'mttrnv_12.dbo.Customer';列不允许空值。 INSERT失败。   声明已经终止。

表格结构:

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

2 个答案:

答案 0 :(得分:0)

在远程主机上,您的Id列不允许NULL值。

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

答案 1 :(得分:0)

问题出在MSSQL 2008导出对话框中(阅读here)。主要是,远程主机(另一个数据库)上没有完整的数据副本集。要解决此问题,我使用名为SQL Tools的免费实用工具,您可以下载它here。它的作用 - 比较您的本地和远程数据库。当检测到差异时,程序会自动同步数据库以达到100%匹配。多数民众赞成!