{"id":518,"date":"2024-01-29T08:14:25","date_gmt":"2024-01-29T05:14:25","guid":{"rendered":"https:\/\/tech.zeleneew.ru\/?p=518"},"modified":"2024-01-31T08:53:21","modified_gmt":"2024-01-31T05:53:21","slug":"%d0%be%d1%87%d0%b8%d1%81%d1%82%d0%ba%d0%b0-%d0%b1%d0%b4-wsus-%d0%bd%d0%b0-%d1%83%d1%80%d0%be%d0%b2%d0%bd%d0%b5-sql","status":"publish","type":"post","link":"https:\/\/tech.zeleneew.ru\/?p=518","title":{"rendered":"\u041e\u0447\u0438\u0441\u0442\u043a\u0430 \u0411\u0414 WSUS \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 SQL"},"content":{"rendered":"\n<p>\u0415\u0441\u043b\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0435 \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u043e, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043a\u043e\u043f\u043d\u0443\u0442\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0432 \u0433\u043b\u0443\u0434\u044c \u0438 \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043e\u0447\u0438\u0441\u0442\u043a\u0443 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0441\u0430\u043c\u043e\u0439 \u0411\u0414.<\/p>\n\n\n\n<p>\u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442, \u043d\u0430\u0434\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043e\u0447\u0438\u0441\u0442\u043a\u0443 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 \u0431\u0430\u0437\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0443 SQL Server \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c Management Studio. Management Studio \u0441\u0442\u0430\u043b\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u043c. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u043e \u044d\u0442\u043e\u0439&nbsp;<a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/ssms\/download-sql-server-management-studio-ssms\">\u0441\u0441\u044b\u043b\u043a\u0435<\/a>.<\/p>\n\n\n\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 Windows Internal Database, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c Management Studio \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0441 WSUS. \u0414\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\\\\.\\pipe\\MICROSOFT##WID\\tsql\\query<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/32a\/f18\/d79\/32af18d79ccb48138d6e7d1882d9390c.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>\u0414\u043b\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0431\u0430\u0437\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 4 \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>EXEC SUSDB.dbo.spDeclineExpiredUpdates;1<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>EXEC SUSDB.dbo.spDeclineSupersededUpdates;1<\/code><\/pre>\n\n\n\n<p>\u0414\u043b\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b&nbsp;<strong>spCompressUpdate<\/strong>&nbsp;\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u00ab\u043e\u0431\u0451\u0440\u0442\u043a\u0430\u00bb:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>USE<\/strong> SUSDB\n<strong>DECLARE<\/strong> @var1 INT, @curitem INT, @totaltodelete INT\n<strong>DECLARE<\/strong> @msg <strong>nvarchar<\/strong>(200)\n<strong>CREATE<\/strong> <strong>TABLE<\/strong> #results (Col1 INT) <strong>INSERT<\/strong> <strong>INTO<\/strong> #results(Col1)\nEXEC spGetUpdatesToCompress\n<strong>SET<\/strong> @totaltodelete = (<strong>SELECT<\/strong> <strong>COUNT<\/strong>(*) <strong>FROM<\/strong> #results)\n<strong>SELECT<\/strong> @curitem=1\n<strong>DECLARE<\/strong> WC <strong>Cursor<\/strong> <strong>FOR<\/strong> <strong>SELECT<\/strong> Col1 <strong>FROM<\/strong> #results\n<strong>OPEN<\/strong> WC\n<strong>FETCH<\/strong> <strong>NEXT<\/strong> <strong>FROM<\/strong> WC <strong>INTO<\/strong> @var1 <strong>WHILE<\/strong> (@@FETCH_STATUS &gt; -1)\n<strong>BEGIN<\/strong> <strong>SET<\/strong> @msg = <strong>cast<\/strong>(@curitem <strong>as<\/strong> varchar(5)) + '\/' + <strong>cast<\/strong>(@totaltodelete <strong>as<\/strong> varchar(5)) + ': Compressing ' + <strong>CONVERT<\/strong>(varchar(10), @var1) + ' ' + <strong>cast<\/strong>(<strong>getdate<\/strong>() <strong>as<\/strong> varchar(30))\nRAISERROR(@msg,0,1) <strong>WITH<\/strong> <strong>NOWAIT<\/strong>\nEXEC spCompressUpdate @localUpdateID=@var1\n<strong>SET<\/strong> @curitem = @curitem +1\n<strong>FETCH<\/strong> <strong>NEXT<\/strong> <strong>FROM<\/strong> WC <strong>INTO<\/strong> @var1\n<strong>END<\/strong>\n<strong>CLOSE<\/strong> WC\n<strong>DEALLOCATE<\/strong> WC\n<strong>DROP<\/strong> <strong>TABLE<\/strong> #results\n<\/code><\/pre>\n\n\n\n<p>\u0422\u0430\u043a\u0430\u044f \u0436\u0435 \u043e\u0431\u0435\u0440\u0442\u043a\u0430 \u0434\u043b\u044f&nbsp;<strong>spDeleteUpdate<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>USE<\/strong> SUSDB\n<strong>DECLARE<\/strong> @var1 INT, @curitem INT, @totaltodelete INT\n<strong>DECLARE<\/strong> @msg <strong>nvarchar<\/strong>(200)\n<strong>CREATE<\/strong> <strong>TABLE<\/strong> #results (Col1 INT) <strong>INSERT<\/strong> <strong>INTO<\/strong> #results(Col1)\nEXEC spGetObsoleteUpdatesToCleanup\n<strong>SET<\/strong> @totaltodelete = (<strong>SELECT<\/strong> <strong>COUNT<\/strong>(*) <strong>FROM<\/strong> #results)\n<strong>SELECT<\/strong> @curitem=1\n<strong>DECLARE<\/strong> WC <strong>Cursor<\/strong> <strong>FOR<\/strong> <strong>SELECT<\/strong> Col1 <strong>FROM<\/strong> #results\n<strong>OPEN<\/strong> WC\n<strong>FETCH<\/strong> <strong>NEXT<\/strong> <strong>FROM<\/strong> WC <strong>INTO<\/strong> @var1 <strong>WHILE<\/strong> (@@FETCH_STATUS &gt; -1)\n<strong>BEGIN<\/strong> <strong>SET<\/strong> @msg = <strong>cast<\/strong>(@curitem <strong>as<\/strong> varchar(5)) + '\/' + <strong>cast<\/strong>(@totaltodelete <strong>as<\/strong> varchar(5)) + ': Deleting ' + <strong>CONVERT<\/strong>(varchar(10), @var1) + ' ' + <strong>cast<\/strong>(<strong>getdate<\/strong>() <strong>as<\/strong> varchar(30))\nRAISERROR(@msg,0,1) <strong>WITH<\/strong> <strong>NOWAIT<\/strong>\nEXEC spDeleteUpdate @localUpdateID=@var1\n<strong>SET<\/strong> @curitem = @curitem +1\n<strong>FETCH<\/strong> <strong>NEXT<\/strong> <strong>FROM<\/strong> WC <strong>INTO<\/strong> @var1\n<strong>END<\/strong>\n<strong>CLOSE<\/strong> WC\n<strong>DEALLOCATE<\/strong> WC\n<strong>DROP<\/strong> <strong>TABLE<\/strong> #results\n<\/code><\/pre>\n\n\n\n<p>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u00ab\u043e\u0431\u0451\u0440\u0442\u043e\u043a\u00bb \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0430\u044e\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u0438 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0430. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>DROP<\/strong> <strong>TABLE<\/strong> #results<\/code><\/pre>\n\n\n\n<p>\u0412 \u043c\u0430\u0441\u0442\u0435\u0440\u0435 \u043e\u0447\u0438\u0441\u0442\u043a\u0438 5 \u043a\u043e\u043c\u0430\u043d\u0434, \u043c\u044b \u0432\u043f\u043e\u043b\u043d\u0438\u043b\u0438 4 \u0438\u0437 \u043d\u0438\u0445. \u041a\u043e\u043c\u0430\u043d\u0434\u0443&nbsp;<strong>\u00abDelete computers not contacting server\u00bb<\/strong>&nbsp;\u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0438\u0437 \u043c\u0430\u0441\u0442\u0435\u0440\u0430.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><a href=\"https:\/\/www.blogger.com\/null\"><\/a>\u041f\u0435\u0440\u0435\u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044f \u0431\u0430\u0437\u044b<\/h4>\n\n\n\n<p>\u0414\u043b\u044f \u043f\u0435\u0440\u0435\u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438 \u0431\u0430\u0437\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439&nbsp;<a href=\"https:\/\/gallery.technet.microsoft.com\/scriptcenter\/6f8cde49-5c52-4abd-9820-f1d270ddea61\">\u0441\u043a\u0440\u0438\u043f\u0442<\/a>:<br><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em>\/****************************************************************************** \nThis sample T-SQL script performs basic maintenance tasks on SUSDB \n1. Identifies indexes that are fragmented and defragments them. For certain \n   tables, a fill-factor is set in order to improve insert performance. \n   Based on MSDN sample at http:\/\/msdn2.microsoft.com\/en-us\/library\/ms188917.aspx \n   and tailored for SUSDB requirements \n2. Updates potentially out-of-date table statistics. \n******************************************************************************\/<\/em> \n \n<strong>USE<\/strong> SUSDB; \nGO \n<strong>SET<\/strong> NOCOUNT <strong>ON<\/strong>; \n \n<em>-- Rebuild or reorganize indexes based on their fragmentation levels <\/em>\n<strong>DECLARE<\/strong> @work_to_do <strong>TABLE<\/strong> ( \n    objectid int \n    , indexid int \n    , pagedensity float \n    , fragmentation float \n    , numrows int \n) \n \n<strong>DECLARE<\/strong> @objectid int; \n<strong>DECLARE<\/strong> @indexid int; \n<strong>DECLARE<\/strong> @schemaname <strong>nvarchar<\/strong>(130);  \n<strong>DECLARE<\/strong> @objectname <strong>nvarchar<\/strong>(130);  \n<strong>DECLARE<\/strong> @indexname <strong>nvarchar<\/strong>(130);  \n<strong>DECLARE<\/strong> @numrows int \n<strong>DECLARE<\/strong> @density float; \n<strong>DECLARE<\/strong> @fragmentation float; \n<strong>DECLARE<\/strong> @command <strong>nvarchar<\/strong>(4000);  \n<strong>DECLARE<\/strong> @fillfactorset bit \n<strong>DECLARE<\/strong> @numpages int \n \n<em>-- Select indexes that need to be defragmented based on the following <\/em>\n<em>-- * Page density is low <\/em>\n<em>-- * External fragmentation is high in relation to index size <\/em>\nPRINT 'Estimating fragmentation: Begin. ' + <strong>convert<\/strong>(<strong>nvarchar<\/strong>, <strong>getdate<\/strong>(), 121)  \n<strong>INSERT<\/strong> @work_to_do \n<strong>SELECT<\/strong> \n    <strong>f<\/strong>.object_id \n    , index_id \n    , avg_page_space_used_in_percent \n    , avg_fragmentation_in_percent \n    , record_count \n<strong>FROM<\/strong>  \n    <strong>sys<\/strong>.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, 'SAMPLED') <strong>AS<\/strong> <strong>f<\/strong> \n<strong>WHERE<\/strong> \n    (<strong>f<\/strong>.avg_page_space_used_in_percent &lt; 85.0 <strong>and<\/strong> <strong>f<\/strong>.avg_page_space_used_in_percent\/100.0 * page_count &lt; page_count - 1) \n    <strong>or<\/strong> (<strong>f<\/strong>.page_count &gt; 50 <strong>and<\/strong> <strong>f<\/strong>.avg_fragmentation_in_percent &gt; 15.0) \n    <strong>or<\/strong> (<strong>f<\/strong>.page_count &gt; 10 <strong>and<\/strong> <strong>f<\/strong>.avg_fragmentation_in_percent &gt; 80.0) \n \nPRINT 'Number of indexes to rebuild: ' + <strong>cast<\/strong>(@@ROWCOUNT <strong>as<\/strong> <strong>nvarchar<\/strong>(20)) \n \nPRINT 'Estimating fragmentation: End. ' + <strong>convert<\/strong>(<strong>nvarchar<\/strong>, <strong>getdate<\/strong>(), 121) \n \n<strong>SELECT<\/strong> @numpages = <strong>sum<\/strong>(ps.used_page_count) \n<strong>FROM<\/strong> \n    @work_to_do <strong>AS<\/strong> fi \n    <strong>INNER<\/strong> <strong>JOIN<\/strong> <strong>sys<\/strong>.<strong>indexes<\/strong> <strong>AS<\/strong> <strong>i<\/strong> <strong>ON<\/strong> fi.objectid = <strong>i<\/strong>.object_id <strong>and<\/strong> fi.indexid = <strong>i<\/strong>.index_id \n    <strong>INNER<\/strong> <strong>JOIN<\/strong> <strong>sys<\/strong>.dm_db_partition_stats <strong>AS<\/strong> ps <strong>on<\/strong> <strong>i<\/strong>.object_id = ps.object_id <strong>and<\/strong> <strong>i<\/strong>.index_id = ps.index_id \n \n<em>-- Declare the cursor for the list of indexes to be processed. <\/em>\n<strong>DECLARE<\/strong> curIndexes <strong>CURSOR<\/strong> <strong>FOR<\/strong> <strong>SELECT<\/strong> * <strong>FROM<\/strong> @work_to_do \n \n<em>-- Open the cursor. <\/em>\n<strong>OPEN<\/strong> curIndexes \n \n<em>-- Loop through the indexes <\/em>\n<strong>WHILE<\/strong> (1=1) \n<strong>BEGIN<\/strong> \n    <strong>FETCH<\/strong> <strong>NEXT<\/strong> <strong>FROM<\/strong> curIndexes \n    <strong>INTO<\/strong> @objectid, @indexid, @density, @fragmentation, @numrows; \n    IF @@FETCH_STATUS &lt; 0 BREAK; \n \n    <strong>SELECT<\/strong>  \n        @objectname = <strong>QUOTENAME<\/strong>(o.<strong>name<\/strong>) \n        , @schemaname = <strong>QUOTENAME<\/strong>(s.<strong>name<\/strong>) \n    <strong>FROM<\/strong>  \n        <strong>sys<\/strong>.objects <strong>AS<\/strong> o \n        <strong>INNER<\/strong> <strong>JOIN<\/strong> <strong>sys<\/strong>.schemas <strong>as<\/strong> s <strong>ON<\/strong> s.schema_id = o.schema_id \n    <strong>WHERE<\/strong>  \n        o.object_id = @objectid; \n \n    <strong>SELECT<\/strong>  \n        @indexname = <strong>QUOTENAME<\/strong>(<strong>name<\/strong>) \n        , @fillfactorset = <strong>CASE<\/strong> fill_factor <strong>WHEN<\/strong> 0 <strong>THEN<\/strong> 0 <strong>ELSE<\/strong> 1 <strong>END<\/strong> \n    <strong>FROM<\/strong>  \n        <strong>sys<\/strong>.<strong>indexes<\/strong> \n    <strong>WHERE<\/strong> \n        object_id = @objectid <strong>AND<\/strong> index_id = @indexid; \n \n    IF ((@density BETWEEN 75.0 AND 85.0) AND @fillfactorset = 1) OR (@fragmentation &lt; 30.0) \n        <strong>SET<\/strong> @command = <strong>N<\/strong>'ALTER INDEX ' + @indexname + <strong>N<\/strong>' ON ' + @schemaname + <strong>N<\/strong>'.' + @objectname + <strong>N<\/strong>' REORGANIZE'; \n    ELSE IF @numrows &gt;= 5000 AND @fillfactorset = 0 \n        <strong>SET<\/strong> @command = <strong>N<\/strong>'ALTER INDEX ' + @indexname + <strong>N<\/strong>' ON ' + @schemaname + <strong>N<\/strong>'.' + @objectname + <strong>N<\/strong>' REBUILD WITH (FILLFACTOR = 90)'; \n    ELSE \n        <strong>SET<\/strong> @command = <strong>N<\/strong>'ALTER INDEX ' + @indexname + <strong>N<\/strong>' ON ' + @schemaname + <strong>N<\/strong>'.' + @objectname + <strong>N<\/strong>' REBUILD'; \n    PRINT convert(nvarchar, getdate(), 121) + N' Executing: ' + @command; \n    EXEC (@command); \n    PRINT convert(nvarchar, getdate(), 121) + N' Done.'; \n<strong>END<\/strong> \n \n<em>-- Close and deallocate the cursor. <\/em>\n<strong>CLOSE<\/strong> curIndexes; \n<strong>DEALLOCATE<\/strong> curIndexes; \n \n \nIF EXISTS (<strong>SELECT<\/strong> * <strong>FROM<\/strong> @work_to_do) \n<strong>BEGIN<\/strong> \n    PRINT 'Estimated number of pages in fragmented indexes: ' + <strong>cast<\/strong>(@numpages <strong>as<\/strong> <strong>nvarchar<\/strong>(20)) \n    <strong>SELECT<\/strong> @numpages = @numpages - <strong>sum<\/strong>(ps.used_page_count) \n    <strong>FROM<\/strong> \n        @work_to_do <strong>AS<\/strong> fi \n        <strong>INNER<\/strong> <strong>JOIN<\/strong> <strong>sys<\/strong>.<strong>indexes<\/strong> <strong>AS<\/strong> <strong>i<\/strong> <strong>ON<\/strong> fi.objectid = <strong>i<\/strong>.object_id <strong>and<\/strong> fi.indexid = <strong>i<\/strong>.index_id \n        <strong>INNER<\/strong> <strong>JOIN<\/strong> <strong>sys<\/strong>.dm_db_partition_stats <strong>AS<\/strong> ps <strong>on<\/strong> <strong>i<\/strong>.object_id = ps.object_id <strong>and<\/strong> <strong>i<\/strong>.index_id = ps.index_id \n \n    PRINT 'Estimated number of pages freed: ' + <strong>cast<\/strong>(@numpages <strong>as<\/strong> <strong>nvarchar<\/strong>(20)) \n<strong>END<\/strong> \n<strong>GO<\/strong> \n  \n<em>--Update all statistics <\/em>\nPRINT 'Updating all statistics.' + <strong>convert<\/strong>(<strong>nvarchar<\/strong>, <strong>getdate<\/strong>(), 121)  \nEXEC sp_updatestats \nPRINT 'Done updating statistics.' + <strong>convert<\/strong>(<strong>nvarchar<\/strong>, <strong>getdate<\/strong>(), 121)  \n<strong>GO<\/strong> \n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u0415\u0441\u043b\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0435 \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u043e, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043a\u043e\u043f\u043d\u0443\u0442\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0432 \u0433\u043b\u0443\u0434\u044c \u0438 \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043e\u0447\u0438\u0441\u0442\u043a\u0443 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0441\u0430\u043c\u043e\u0439 \u0411\u0414. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442, \u043d\u0430\u0434\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043e\u0447\u0438\u0441\u0442\u043a\u0443 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 \u0431\u0430\u0437\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0443 SQL Server \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c Management Studio. Management &hellip; <a href=\"https:\/\/tech.zeleneew.ru\/?p=518\">\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u0435\u0435 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29,33,8],"tags":[],"class_list":["post-518","post","type-post","status-publish","format-standard","hentry","category-wsus","category-33","category-8"],"_links":{"self":[{"href":"https:\/\/tech.zeleneew.ru\/index.php?rest_route=\/wp\/v2\/posts\/518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tech.zeleneew.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tech.zeleneew.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tech.zeleneew.ru\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/tech.zeleneew.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=518"}],"version-history":[{"count":1,"href":"https:\/\/tech.zeleneew.ru\/index.php?rest_route=\/wp\/v2\/posts\/518\/revisions"}],"predecessor-version":[{"id":519,"href":"https:\/\/tech.zeleneew.ru\/index.php?rest_route=\/wp\/v2\/posts\/518\/revisions\/519"}],"wp:attachment":[{"href":"https:\/\/tech.zeleneew.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tech.zeleneew.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tech.zeleneew.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}