Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kesalahan SQL Server 1934 terjadi pada INSERT ke tabel dengan kolom yang dihitung PHP/PDO

Ternyata masalahnya ada hubungannya dengan parameter SET. Saya menggunakan kode di bawah ini yang diperoleh dari Di sini . Untuk menentukan opsi mana yang ditetapkan di SQL Server Management Studio (tempat penyisipan berfungsi). Kemudian menempatkan masing-masing di exec sebelum pernyataan insert saya menyebabkan semuanya berfungsi kembali. Saya tidak perlu menyimpan semua opsi, jadi di bawah ini saya tunjukkan opsi yang diperlukan untuk membuatnya berfungsi.

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'

Berikut adalah opsi yang akhirnya saya butuhkan:

$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");

Pembaruan:Tampaknya kendala FK menghasilkan kesalahan berikut. Hal di atas juga memperbaiki kesalahan ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mengembalikan kolom dinamis dari nilai yang dikelompokkan di SQL Server (Prosedur Tersimpan)

  2. SQL Server AlwaysOn Availability Groups:Instalasi dan konfigurasi, Bagian 2

  3. Batas memori di SQL Server 2016 SP1

  4. Tidak dapat melihat pemicu yang saya buat di SQL Server Management Studio 2008

  5. Berikan Akses Pengguna msdb ke Profil Email Database di SQL Server (T-SQL)