sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server-fel 1934 inträffar på INSERT till tabell med beräknad kolumn PHP/PDO

Det visade sig att problemet hade att göra med SET-parametrarna. Jag använde koden nedan från Här . För att avgöra vilka alternativ som ställdes i SQL Server Management Studio (där infogningen fungerade). Att sedan placera var och en av dessa i en exec före mitt infogade uttalande fick saker och ting att fungera igen. Jag behövde inte behålla alla alternativ, så nedan visar jag de som krävdes för att få det att fungera.

DECLARE @options INT
SELECT @options = @@OPTIONS

PRINT @options
IF ( (1 & @options) = 1 ) PRINT 'DISABLE_DEF_CNST_CHK' 
IF ( (2 & @options) = 2 ) PRINT 'IMPLICIT_TRANSACTIONS' 
IF ( (4 & @options) = 4 ) PRINT 'CURSOR_CLOSE_ON_COMMIT' 
IF ( (8 & @options) = 8 ) PRINT 'ANSI_WARNINGS' 
IF ( (16 & @options) = 16 ) PRINT 'ANSI_PADDING' 
IF ( (32 & @options) = 32 ) PRINT 'ANSI_NULLS' 
IF ( (64 & @options) = 64 ) PRINT 'ARITHABORT' 
IF ( (128 & @options) = 128 ) PRINT 'ARITHIGNORE'
IF ( (256 & @options) = 256 ) PRINT 'QUOTED_IDENTIFIER' 
IF ( (512 & @options) = 512 ) PRINT 'NOCOUNT' 
IF ( (1024 & @options) = 1024 ) PRINT 'ANSI_NULL_DFLT_ON' 
IF ( (2048 & @options) = 2048 ) PRINT 'ANSI_NULL_DFLT_OFF' 
IF ( (4096 & @options) = 4096 ) PRINT 'CONCAT_NULL_YIELDS_NULL' 
IF ( (8192 & @options) = 8192 ) PRINT 'NUMERIC_ROUNDABORT' 
IF ( (16384 & @options) = 16384 ) PRINT 'XACT_ABORT'

Här är alternativen som jag till slut behövde:

$dbPDO->exec("SET ANSI_WARNINGS ON");                                                                               
$dbPDO->exec("SET ANSI_PADDING ON");
$dbPDO->exec("SET ANSI_NULLS ON");
$dbPDO->exec("SET QUOTED_IDENTIFIER ON");
$dbPDO->exec("SET CONCAT_NULL_YIELDS_NULL ON");

Uppdatering:Det verkar som att FK-begränsningar resulterade i följande fel. Ovanstående fixade även detta fel.



  1. MySQL - Rader till kolumner

  2. Uppdatera mysql-tabellen med vald fråga från en annan databas

  3. JSON_QUERY() vs JSON_VALUE() i SQL Server:Vad är skillnaden?

  4. Derby eller MySQL eller...?