Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Gibt es eine Möglichkeit, die Werte für FixedLenNullInSource und TrimTrailingBlanks zu ändern?

TrimTrailingBlanks bezieht sich auf das SET ANSI_PADDING Option, wenn die Tabelle erstellt wurde. Möglicherweise können Sie dies ändern, ohne die gesamte Tabelle neu zu erstellen, ähnlich wie bei meine Antwort hier zum Ändern des ANSI_NULL Option.

Andernfalls müssten Sie die Tabelle mit der gewünschten ausgewählten Semantik neu erstellen.

Betrachten wir die Definition von sp_help

   'FixedLenNullInSource' = 
   CASE
        WHEN Type_name(system_type_id) NOT IN ( 'varbinary', 'varchar', 'binary', 'char' ) THEN '(n/a)'
        WHEN is_nullable = 0 THEN @no
        ELSE @yes
    END 

daher erscheinen unterschiedliche Werte für FixedLenNullInSource Geben Sie einfach an, dass die Nullfähigkeit der Spalte unterschiedlich ist und dass es sich um einen der 4 angegebenen Datentypen handelt. Sie müssten das mit ALTER TABLE ... ALTER COLUMN beheben

Sie sind wahrscheinlich viel besser dran, ein Drittanbieter-Tool zu verwenden, um die Datenbanken wie Redgate SQL Compare oder SQL Server Data Tools zu vergleichen, oder einfach nur sys.tables abzufragen und sys.columns selbst, anstatt sp_help zu verwenden obwohl.