SQL SERVER: Définir le même classment de database pour la table temporaire

J'ai un script dans SQL Server. Dans ce script, je crée une table temporaire comme ceci:

CREATE TABLE #tmpTbl(ID char(36) NOT NULL, Field1 char(36) NOT NULL, Field2 varchar(50) NOT NULL, Field3 varchar(50)) 

pour définir la collation pour toute la table temporaire que je fais:

 CREATE TABLE #tmpTbl(ID char(36) collate Modern_Spanish_CI_AS NOT NULL , Field1 char(36) collate Modern_Spanish_CI_AS NOT NULL , Field2 varchar(50) collate Modern_Spanish_CI_AS NOT NULL , Field3 varchar(50) collate Modern_Spanish_CI_AS) 

Comme vous le voyez, j'applique la collation pour chaque colonne. Donc j'essaye de faire ci-dessous:

  1. Au lieu d'appliquer le classment à chaque colonne de la table temporaire, est-il possible d'appliquer le classment à toutes les colonnes de la table temporaire?
  2. Au lieu d'indiquer manuellement la collation Modern_Spanish_CI_AS que la database où le script est exécuté, existe-t-il un moyen d'get le classment de la database via une variable, puis de le définir sur des colonnes temporaires?

par exemple dans ce dernier cas:

 DECLARE @Collation = getdatabasecollation --> Get current database collation where script is executed. 

et alors:

 CREATE TABLE #tmpTbl(ID char(36) collate @Collation NOT NULL , Field1 char(36) collate @Collation NOT NULL, Field2 varchar(50) collate @Collation NOT NULL , Field3 varchar(50) collate @Collation) 

ou ai-je dit au point 1, mettre ce classment à la table temporaire entière.

Utilisez simplement COLLATE DATABASE_DEFAULT

 CREATE TABLE #tmpTbl ( ID CHAR(36) COLLATE DATABASE_DEFAULT NOT NULL, Field1 CHAR(36) COLLATE DATABASE_DEFAULT NOT NULL, Field2 VARCHAR(50) COLLATE DATABASE_DEFAULT NOT NULL, Field3 VARCHAR(50) COLLATE DATABASE_DEFAULT NULL )