Créez travail SQL Server automatiquement
Je suis en train d'écrire de SQL Server scripts de déploiement, qui créent de travail SQL Server automatiquement sur un Serveur SQL server/instance. J'ai trouvé que je peux extraire l'instruction sql qui peut être utilisé pour créer de travail SQL Server automatiquement en utilisant le script d'emploi en tant que => Créer Pour.
Ma confusion, c'est que, je trouve le nom de base de données et le Propriétaire du nom de compte sont codés en dur dans le script sql généré. Quand je suis à l'aide de l'utilitaire sqlcmd pour exécuter les scripts sql sur un autre ordinateur pour effectuer le déploiement, la base de données de nom et de Propriétaire du nom de compte peut être différent, donc j'ai besoin d'un moyen de passer le nom de la base et le Propriétaire du nom de compte sur le Serveur SQL de création d'emplois de script et de laisser le script de l'utilisation du nom de base de données et le Propriétaire du nom de compte (autres que codé en dur).
Toutes les idées de comment faire cela?
OriginalL'auteur George2 | 2009-08-01
Vous devez vous connecter pour publier un commentaire.
Vous devez créer dynamiquement le script de travail, et puis l'exécuter.
Vous pouvez essayer quelque chose comme le suivant ou la changer pour une procédure stockée avec des paramètres d'entrée pour le travail de propriétaire et de nom de base de données.
J'espère que cela va vous aider à aller dans la bonne direction. Si vous avez besoin de plus d'aide faites le moi savoir.
J'ai une question connexe, ici, reconnaissants si vous pouviez prendre un coup d'oeil, stackoverflow.com/questions/1219067/...
Vous pourriez faire presque tout ce que vous voulez variable. Vous pouvez commencer avec le Nom de la Tâche, la Description et la Catégorie. C'est vraiment à vous et ce que vous allez utiliser pour. J'ai un peu de travail de création de scripts pour la création/démarrage/arrêt en route les traces que j'utilise. C'est à vous et combien de temps vous voulez mettre.
Merci, j'ai une question connexe, ici, reconnaissant si vous pouviez m'aider. stackoverflow.com/questions/1219067/...
En fait, je suis sidéré à la solution ci-dessus. Pourquoi voudriez-vous faire cela met tout le code SQL dynamique alors que tout ce que vous devez faire est de simplement passer la variable de la base de données msdb procédures ??? Ajouter une à mon humble avis plus logique de script ci-dessous... je veux dire, c'est que les paramètres sont pour, non ?
OriginalL'auteur BrianD
À l'aide de l'exemple de BrainD je tiens à souligner que son idée de l'utilisation des variables est très bien, cependant, de les passer à la procédure stockée à l'aide de stabilisation d'image dynamique SQL plus n'est certainement pas la bonne approche. Plutôt, utilisez les paramètres de la procédure stockée pour directement passer les variables directement là où ils sont nécessaires.
OriginalL'auteur deroby
Plus à BrianD de la réponse ci-dessus, vous pouvez définir des variables (en fait plus comme des macros du préprocesseur de variables) à l'sqlcmd niveau; ce sont entre parenthèses, précédé du signe$:
Cela vous permet de transmettre les informations sur la ligne de commande sqlcmd avec le commutateur-v:
J'ai une question connexe, ici, reconnaissants si vous pouviez prendre un coup d'oeil, stackoverflow.com/questions/1219067/...
OriginalL'auteur Ken Keenan
J'ai été à venir à travers le même problème aujourd'hui et la façon de m'attaquer, il est si simple
Procédez de la manière suivante
Créer une procédure stockée qui crée de l'emploi avec le paramètre @serverName nvarchar(128)
Maintenant facile, vous pouvez obtenir le nom du serveur à l'aide de la suite de
Exécuter la procédure stockée à créer votre travail
Qui est-il.
Je suis à l'aide de visual studio db projet et j'ai fait les étapes 2 et 3 int le script de post-déploiement des
Afin de créer la procédure stockée, il suffit d'aller à la sql management studio et créer un travail sql. Puis faire un clic droit sur le job que vous venez de créer et de faire une Chute et de Créer, vous pouvez modifier le script généré.
Merci mais ce que je voulais dire c'est mieux pour inclure toutes les informations pertinentes dans votre réponse. Vous pouvez modifier, etc.
OriginalL'auteur Dan Hunex
J'ai même eu mieux ...Créer une procédure stockée sans paramètre et à l'intérieur de la procédure stockée n' :
Ensuite affecter @servername à la server_name paramètre de sp_add_jobserver comme ci-dessous::
Afin de créer des procédures stockées qui crée un travail sql, d'abord le créer à l'aide de sql management studio, puis cliquez-droit sur le job et de le faire Tomber et de Créer....
OriginalL'auteur Dan Hunex