Sorun, SET parametreleriyle ilgili olarak ortaya çıktı. Aşağıdaki kodu Here'dan elde ettim. SQL Server Management Studio'da (ekin çalıştığı yerde) hangi seçeneklerin ayarlandığını belirlemek için. Daha sonra, ekleme ifadesinden önce bunların her birini bir yürütme birimine yerleştirmek şeylerin yeniden çalışmasına neden oldu. Tüm seçenekleri saklamak zorunda değildim, aşağıda çalışmayı gerektirenleri göstereceğim.
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'
Burada gerek sona erdi seçenekleri şunlardır:
$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");
Güncelleme: O FK kısıtlamaları aşağıdaki hatayla sonuçlandı görünüyor. Yukarıdaki bu hatayı da düzeltmiştir.
SQLSTATE[HY000]: General error: 8624 General SQL Server error: Check messages from the SQL Server [8624] (severity 16) [(null)]
Ayarları PHP kullanarak yazmanız gerekebilir. Örn: $ dbPDO-> exec ("SET ANSI_WARNINGS ON"); – jjwdesign
Bunu nereye koyacağım? Belirli bir dosyada veya sunucuda? – bleykFaust