Префикс sp_
обозначает Системную процедуру, и его не следует использовать в качестве префикса для обычных процедур. Если вы это сделаете, он сначала будет совершать дополнительную поездку в базу данных master
каждый раз, чтобы найти процедуру, и если она будет иметь то же имя, что и одна из там процедур, эта процедура будет выполняться вместо вашей процедуры.
Кроме этого, вы можете сами составить любое соглашение об именах. Одним из используемых нашей компанией является subsystem_object_action
, например, main_Customer_Get
. Это помещает процедуры, которые принадлежат друг другу, близко друг к другу в списке.
select * from information_schema.columns
может помочь вам начать.
Вы также можете использовать ...
SQL_VARIANT_PROPERTY()
... в тех случаях, когда у вас нет прямого доступа к метаданным (например, возможно, запрос связанного сервера?).
http : //msdn.microsoft.com/en-us/library/ms178550.aspx
В SQL Server 2005 и более поздних версиях лучше использовать представления каталога (sys.columns), а не INFORMATION_SCHEMA. Если только переносимость на другие платформы не важна. Просто имейте в виду, что представления INFORMATION_SCHEMA не изменятся, и поэтому им будет постепенно не хватать информации о новых функциях и т. Д. В последующих версиях SQL Server.
Сможете ли вы воссоздать промежуточную таблицу с нуля каждый раз при выполнении запроса? Если это так, вы можете использовать синтаксис SELECT ... INTO
и позволить SQL Server позаботиться о создании таблицы с использованием правильных типов столбцов и т. Д.
SELECT *
INTO your_staging_table
FROM enormous_collection_of_views_tables_etc