Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL предоставяне за изпълнение на множество обекти

Не можете да използвате заместващи знаци - трябва да предоставите едно от тях на всички обекти (или всички обекти в схема) - или тогава трябва да изброите всички обекти един по един.

Това, което можете да направите, е нещо подобно - накарайте SQL Server да генерира тези изрази вместо вас:

SELECT
   p.Name,
   GrantCmd = 'GRANT EXECUTE ON OBJECT::' + p.name + ' TO [domain\user]'
FROM sys.procedures p
WHERE p.Name LIKE 'XU%'

Тази заявка ще изброи всички процедури, които започват с XU и създайте колона, която съдържа GRANT EXECUTE ON .... декларация за тази процедура.

Стартирайте това в SQL Server Management Studio и след това просто копирайте получения GrantCmd колона, поставете го в нов прозорец и го изпълнете там.

И ако вистина искате да автоматизирате това, можете също да превърнете тази заявка в курсор и след това да използвате динамичен SQL, за да изпълните автоматично получените GrantCmd изявления....




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. използвайки типа данни datetimeoffset с jTDS

  2. Visual Studio:ContextSwitchDeadlock

  3. OPENXML с xmlns:dt

  4. SQL-Server:Има ли SQL скрипт, който мога да използвам, за да определя напредъка на процес на архивиране или възстановяване на SQL Server?

  5. Мрежови интерфейси на SQL Server:низът за връзка не е валиден [87]