@@ -631,11 +631,21 @@ def column_type(ci:)
631
631
end
632
632
633
633
def column_definitions_sql ( database , identifier )
634
- object_name = prepared_statements ? "@0" : quote ( identifier . object )
635
- schema_name = if identifier . schema . blank?
636
- "schema_name()"
634
+ schema_name = "schema_name()"
635
+
636
+ if prepared_statements
637
+ object_name = "@0"
638
+ schema_name = "@1" if identifier . schema . present?
637
639
else
638
- prepared_statements ? "@1" : quote ( identifier . schema )
640
+ object_name = quote ( identifier . object )
641
+ schema_name = quote ( identifier . schema ) if identifier . schema . present?
642
+ end
643
+
644
+ object_id_arg = identifier . schema . present? ? "CONCAT(#{ schema_name } ,'.',#{ object_name } )" : object_name
645
+
646
+ if identifier . temporary_table?
647
+ database = "TEMPDB"
648
+ object_id_arg = "CONCAT('#{ database } ','..',#{ object_name } )"
639
649
end
640
650
641
651
%{
@@ -691,7 +701,7 @@ def column_definitions_sql(database, identifier)
691
701
AND k.unique_index_id = ic.index_id
692
702
AND c.column_id = ic.column_id
693
703
WHERE
694
- o.name = #{ object_name }
704
+ o.Object_ID = Object_ID( #{ object_id_arg } )
695
705
AND s.name = #{ schema_name }
696
706
ORDER BY
697
707
c.column_id
@@ -713,7 +723,7 @@ def remove_check_constraints(table_name, column_name)
713
723
end
714
724
715
725
def remove_default_constraint ( table_name , column_name )
716
- # If their are foreign keys in this table, we could still get back a 2D array, so flatten just in case.
726
+ # If there are foreign keys in this table, we could still get back a 2D array, so flatten just in case.
717
727
execute_procedure ( :sp_helpconstraint , table_name , "nomsg" ) . flatten . select do |row |
718
728
row [ "constraint_type" ] == "DEFAULT on column #{ column_name } "
719
729
end . each do |row |
0 commit comments