{"id":164901,"date":"2025-05-19T10:33:50","date_gmt":"2025-05-19T17:33:50","guid":{"rendered":"https:\/\/blog.everpuredata.com\/?p=164901"},"modified":"2025-06-17T07:57:26","modified_gmt":"2025-06-17T14:57:26","slug":"sql-server-2025-streamlining-t-sql-snapshot-backups","status":"publish","type":"post","link":"https:\/\/blog.everpuredata.com\/zh-hant\/purely-technical\/sql-server-2025-streamlining-t-sql-snapshot-backups\/","title":{"rendered":"SQL Server 2025 \u4e2d\u7684 T-SQL REST API \u6574\u5408\uff1a\u7c21\u5316 T-SQL \u5feb\u7167\u5099\u4efd"},"content":{"rendered":"\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column has-medium-font-size is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:70%\">\n<div class=\"wp-block-group has-border-color has-pure-orange-100-border-color has-primary-background-color has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:2px;border-top-left-radius:16px;border-top-right-radius:16px;border-bottom-left-radius:16px;border-bottom-right-radius:16px;padding-top:30px;padding-right:30px;padding-bottom:30px;padding-left:30px\">\n<h3 class=\"wp-block-heading\" id=\"h-summary\">\u7e3d\u7d50<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This article takes you through the steps for using a T-SQL script to create application-consistent snapshots on<sup> <\/sup>FlashArray from within SQL Server, without needing any external tools or scripts.\u00a0<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group pdf-print-hide is-content-justification-right is-nowrap is-layout-flex wp-container-core-group-is-layout-f726d978 wp-block-group-is-layout-flex\"><div class=\"pdfprnt-buttons\"><a href=\"https:\/\/blog.everpuredata.com\/zh-hant\/wp-json\/wp\/v2\/posts\/164901?print=pdf\" class=\"pdfprnt-button pdfprnt-button-pdf\" target=\"_blank\" ><img decoding=\"async\" src=\"https:\/\/blog.everpuredata.com\/wp-content\/plugins\/pdf-print-pro\/images\/pdf.png?1953174090\" alt=\"image_pdf\" title=\"View PDF\" \/><\/a><a href=\"https:\/\/blog.everpuredata.com\/zh-hant\/wp-json\/wp\/v2\/posts\/164901?print=print\" class=\"pdfprnt-button pdfprnt-button-print\" target=\"_blank\" ><img decoding=\"async\" src=\"https:\/\/blog.everpuredata.com\/wp-content\/plugins\/pdf-print-pro\/images\/print.png?245231721\" alt=\"image_print\" title=\"Print Content\" \/><\/a><\/div>\n<\/div>\n\n\n\n<div id=\"CONTENT\" class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"has-text-align-center wp-block-paragraph\"><em>\u672c\u6587\u6700\u521d\u51fa\u73fe\u5728 <a href=\"https:\/\/www.nocentino.com\/posts\/2025-05-19-t-sql-rest-api-integration-in-sql-server-2025-streamlining-t-sql-snapshot-backups\/\">Anthony Nocentino \u7684\u90e8\u843d\u683c<\/a>\u4e0a\u3002\u7d93\u4f5c\u8005\u7684\u8a8d\u53ef\u8207\u540c\u610f\uff0c\u91cd\u65b0\u767c\u8868\u3002<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d\uff0c\u6211\u6703\u5e36\u60a8\u4e86\u89e3 T-SQL \u8173\u672c\uff0c\u5728 Pure Storage<sup>\u00ae <\/sup><a href=\"https:\/\/www.purestorage.com\/products\/unified-block-file-storage.html\" target=\"_blank\" rel=\"noreferrer noopener\">FlashArray<\/a> <sup><\/sup>\u4e0a\u5efa\u7acb\u61c9\u7528\u7a0b\u5f0f\u4e00\u81f4\u7684\u5feb\u7167\uff0c\u6240\u6709\u5167\u5bb9\u90fd\u4f86\u81ea SQL Server\uff0c\u7121\u9700\u5916\u90e8\u5de5\u5177\u3002SQL Server 2025 \u63a8\u51fa\u5f37\u5927\u7684\u65b0\u529f\u80fd\uff1a<em>sp_invoke_external_rest_endpoint<\/em>\u5132\u5b58\u7a0b\u5e8f\u3002\u9019\u9805\u589e\u5f37\u529f\u80fd\u8b93\u76f4\u63a5\u5f9e T-SQL \u547c\u53eb REST API \u8b8a\u5f97\u6bd4\u4ee5\u5f80\u66f4\u52a0\u5bb9\u6613\u3002\u7d50\u5408\u9019\u9805\u65b0\u529f\u80fd\u8207 Pure Storage API\uff0c\u6211\u5011\u5c31\u80fd\u9806\u66a2\u5730\u8abf\u5ea6\u5feb\u7167\u4f5c\u696d\uff0c\u7121\u9700\u5916\u90e8\u5de5\u5177\u6216\u6307\u4ee4\u78bc\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u60a8\u4e00\u76f4\u95dc\u6ce8\u6211\u7684\u201c<a href=\"https:\/\/blog.everpuredata.com\/author\/anthony-nocentino\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u4f7f\u7528 T-SQL \u5feb\u7167\u5099\u4efd\u201d\u7cfb\u5217<\/a>\uff0c\u60a8\u77e5\u9053\u9019\u9805\u529f\u80fd\u70ba\u5927\u578b\u8cc7\u6599\u5eab\u74b0\u5883\u5e36\u4f86\u5de8\u5927\u6548\u76ca\u3002\u4eca\u5929\uff0c\u6211\u5011\u5c07\u63a2\u8a0e\u5982\u4f55\u5229\u7528 SQL Server \u7684\u5916\u90e8 REST \u7aef\u9ede\u529f\u80fd\uff0c\u76f4\u63a5\u5728 T-SQL \u4e2d\u5be6\u4f5c\uff0c\u800c\u4e0d\u9700\u4f7f\u7528 PowerShell\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e26\u5229\u7528 SQL Server \u547c\u53eb\u5916\u90e8 REST \u7aef\u9ede\u7684\u80fd\u529b\uff0c\u56e0\u6b64\u4e0d\u9700\u8981 PowerShell\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u60a8\u53ef\u4ee5<a href=\"https:\/\/gist.github.com\/nocentino\/e5a9579529eaeccdc85107ba5dbb0294\">\u5728\u9019\u88e1<\/a>\u53d6\u5f97\u5b8c\u6574\u7684\u8173\u672c\u3002<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"enabling-the-rest-endpoint-in-sql-server-2025\">\u5728 SQL Server 2025 \u4e2d\u555f\u7528 REST \u7aef\u9ede<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u9996\u5148\uff0c\u6211\u5011\u4f86\u78ba\u5b9a\u53ef\u4ee5\u9023\u7dda\u5230\u5916\u90e8 REST \u7aef\u9ede\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sp_configure 'external rest endpoint enabled', 1;\nRECONFIGURE WITH OVERRIDE;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u9019\u555f\u7528\u4e86 SQL Server REST \u7aef\u9ede\u529f\u80fd\uff0c\u9019\u8b93\u6211\u5011\u7684 SQL Server \u53ef\u4ee5\u9032\u884c REST API \u5916\u64a5\u547c\u53eb\u3002\u9019\u5c0d\u65bc\u9023\u63a5\u5230 FlashArray \u7684 API \u4ee5\u89f8\u767c\u5feb\u7167\u81f3\u95dc\u91cd\u8981\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8acb\u6ce8\u610f\uff0c\u6240\u6709\u7aef\u9ede<code>sp_invoke_external_rest_endpoint<\/code>\u90fd\u5fc5\u9808\u4f7f\u7528 HTTPS \u642d\u914d TLS \u52a0\u5bc6\uff0c\u4e14\u6191\u8b49\u5fc5\u9808\u53d7\u8a17\u7ba1 SQL Server \u57f7\u884c\u500b\u9ad4\u7684\u57fa\u790e\u4f5c\u696d\u7cfb\u7d71\u6240\u4fe1\u4efb\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"authenticating-with-the-flasharray\">\u4f7f\u7528 FlashArray \u9a57\u8b49<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u63a5\u4e0b\u4f86\uff0c\u6211\u5011\u5c07\u4f7f\u7528 SQL Server 2025 \u7684\u65b0<code>sp_invoke_external_rest_endpoint<\/code>\u5132\u5b58\u7a0b\u5e8f\uff0c\u8207 Pure Storage FlashArray \u5efa\u7acb\u5b89\u5168\u7684\u5de5\u4f5c\u968e\u6bb5\u3002\u6b64\u529f\u80fd\u4ee3\u8868 SQL Server \u529f\u80fd\u6709\u91cd\u5927\u9032\u6b65\uff0c\u8b93\u6211\u5011\u80fd\u5920\u76f4\u63a5\u5f9e T-SQL \u9032\u884c REST API \u547c\u53eb\uff0c\u800c\u7121\u9700\u5916\u90e8\u6307\u4ee4\u78bc\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u70ba\u4e86\u9a57\u8b49 FlashArray\uff0c\u6211\u5011\u9996\u5148\u8981\u5411 FlashArray \u7684\u767b\u5165\u7aef\u9ede\u63d0\u4ea4\u5177\u6709\u8db3\u5920\u6b0a\u9650\u7684 <a href=\"https:\/\/support.purestorage.com\/bundle\/m_purityfa_rest_api\/page\/FlashArray\/PurityFA\/Purity_FA_REST_API\/topics\/task\/t_rest_api_setup_through_the_graphic_user_interface_gui.html\" target=\"_blank\" rel=\"noreferrer noopener\">API \u6b0a\u6756<\/a>\u3002\u6210\u529f\u9a57\u8b49\u5f8c\uff0cFlashArray \u6703\u50b3\u56de\u56de\u61c9\u6a19\u982d\u4e2d\u7684 an<code>x-auth-token<\/code>\uff0c\u800c\u56de\u61c9\u6a19\u982d\u6703\u6210\u70ba\u672c\u5de5\u4f5c\u968e\u6bb5\u4e2d\u6240\u6709\u5f8c\u7e8c API \u4f5c\u696d\u7684\u5de5\u4f5c\u968e\u6bb5\u8a8d\u8b49\u3002\u9019\u7a2e\u57fa\u65bc\u6b0a\u6756\u7684\u9a57\u8b49\u6a21\u5f0f\u70ba API \u4e92\u52d5\u63d0\u4f9b\u4e86\u5b89\u5168\u3001\u9650\u6642\u6a5f\u5236\uff0c\u540c\u6642\u4fdd\u6301\u660e\u78ba\u7684\u64cd\u4f5c\u7a3d\u6838\u8ecc\u8de1\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u4e0b\u9762\u7684\u7a0b\u5f0f\u78bc\u4e2d\uff0c\u6211\u5011\u6703\u57f7\u884c\u6b64\u9a57\u8b49\u8acb\u6c42\uff0c\u7136\u5f8c\u5f9e JSON \u56de\u61c9\u4e2d\u64f7\u53d6<code>x-auth-token<\/code>\uff0c\u4ee5\u5efa\u7acb\u6388\u6b0a\u6a19\u982d\uff0c\u4f9b\u5f8c\u7e8c REST API \u547c\u53eb\u4f7f\u7528\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>DECLARE @ret INT, @response NVARCHAR(MAX), @AuthToken NVARCHAR(100), @MyHeaders NVARCHAR(100);\n\nEXEC @ret = sp_invoke_external_rest_endpoint\n @url = N'https:\/\/flasharray1.purestorage.com\/api\/2.36\/login',\n @headers = N'{\"api-token\":\"PASTE_YOUR_TOKEN_HERE\"}',\n @response = @response OUTPUT;\n\nPRINT 'Login Return Code: ' + CAST(@ret AS NVARCHAR(10))\nPRINT 'Login Response: ' + @response\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"error-handling-and-token-extraction\">\u932f\u8aa4\u8655\u7406\u8207\u91d1\u9470\u64f7\u53d6<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u63a5\u4e0b\u4f86\uff0c\u6211\u5011\u5c07\u9a57\u8b49\u767b\u5165\u6210\u529f\u8207\u5426\uff0c\u4e26\u64f7\u53d6\u9a57\u8b49\u6b0a\u6756\u3002\u5982\u679c FlashArray \u7684\u9000\u8ca8\u4ee3\u78bc\u4e0d\u662f 0\uff0c\u6211\u5011\u6703\u5217\u5370\u932f\u8aa4\u8a0a\u606f\u4e26\u9000\u51fa\u3002\u5047\u8a2d\u6210\u529f\uff0c\u6211\u5011\u5c07\u5f9e\u767b\u5165\u56de\u61c9\u4e2d\u8b80\u53d6<code>\u9a57\u8b49\u6b21\u6578<\/code>\u3002\u8acb\u6ce8\u610f\uff0c\u91d1\u9470\u5fc5\u9808\u5305\u542b\u96d9\u5f15\u865f<code>\"x-auth-token\"<\/code>\uff0c\u4ee5\u78ba\u4fdd<code>JSON_VALUE<\/code>\u6b63\u78ba\u5256\u6790\u3002\u64f7\u53d6\u5f8c\uff0c\u6211\u5011\u6703\u4f7f\u7528\u6b0a\u6756\u4f86\u5efa\u7acb\u6388\u6b0a\u6a19\u982d\uff0c\u4ee5\u4fbf\u5f8c\u7e8c\u5c0d\u9663\u5217\u9032\u884c REST API \u8abf\u7528\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if ( @ret &lt;&gt; 0 )\n    BEGIN\n        PRINT 'Error in REST call, unable to login to the array.'\n        RETURN\n    END\n\nSET @AuthToken = JSON_VALUE(@response, '$.response.headers.\"x-auth-token\"'); \nSET @MyHeaders = N'{\"x-auth-token\":\"' + @AuthToken + '\", \"Content-Type\":\"application\/json\"}'\n\nPRINT 'Headers: ' + @MyHeaders\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"freezing-the-database-for-snapshot\">\u51cd\u7d50\u5feb\u7167\u8cc7\u6599\u5eab<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u95dc\u9375\u6b65\u9a5f\u662f\uff1a\u66ab\u505c\u8cc7\u6599\u5eab\u5beb\u5165 I\/O \u4ee5\u6e96\u5099\u5feb\u7167\u3002\u6b64\u547d\u4ee4\u4f7f\u7528 SQL Server 2022 \u7684 T-SQL \u5feb\u7167\u5099\u4efd\u529f\u80fd\u51cd\u7d50\u8cc7\u6599\u5eab\u4e0a\u7684\u5beb\u5165 I\/O \u4f5c\u696d\u3002\u8cc7\u6599\u5eab\u4ecd\u7136\u53ef\u4ee5\u8b80\u53d6\uff0c\u4f46\u5beb\u5165\u4f5c\u696d\u6703\u66ab\u505c\uff0c\u76f4\u5230\u6211\u5011\u5b8c\u6210\u5feb\u7167\u6d41\u7a0b\u70ba\u6b62\u3002\u5982\u6b64\u53ef\u78ba\u4fdd\u6211\u5011\u80fd\u53d6\u5f97\u61c9\u7528\u7a0b\u5f0f\u4e00\u81f4\u7684\u5feb\u7167\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ALTER DATABASE &#091;TestDB1] SET SUSPEND_FOR_SNAPSHOT_BACKUP = ON\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"taking-the-storage-snapshot\">\u4f7f\u7528\u5132\u5b58\u5feb\u7167<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5c07\u5beb\u5165 I\/O \u51cd\u7d50\u5728\u8cc7\u6599\u5eab\u4e2d\uff0c\u6211\u5011\u5df2\u6e96\u5099\u597d\u5728 FlashArray \u4e0a\u9032\u884c\u5feb\u7167\u3002\u4e0b\u4e00\u6b65\u662f\u547c\u53eb<code>\u4fdd\u8b77\u7fa4\u7d44\u5feb\u7167<\/code>REST\u7aef\u9ede\uff0c\u555f\u52d5\u4fdd\u8b77\u7fa4\u7d44\u7684\u5feb\u7167\u5099\u4efd\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>EXEC @ret = sp_invoke_external_rest_endpoint\n @url = N'https:\/\/flasharray1.purestorage.com\/api\/2.36\/protection-group-snapshots',\n @headers = @MyHeaders,\n @payload = N'{\"source_names\":\"aen-sql-25-a-pg\"}',    \n @response = @response OUTPUT;\n\nPRINT 'Snapshot Return Code: ' + CAST(@ret AS NVARCHAR(10))\nPRINT 'Snapshot Response: ' + @response\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u9019\u88e1\u6211\u5011\u7a31\u70ba FlashArray \u7684 REST API <code>\u4fdd\u8b77\u7fa4\u7d44\u5feb\u7167<\/code>\uff0c\u4ee5\u5efa\u7acb\u540d\u70ba <code>aen-sql-25-a-pg<\/code> \u7684\u4fdd\u8b77\u7fa4\u7d44\u5feb\u7167\u3002\u4fdd\u8b77\u7fa4\u7d44\u9700\u8981\u5305\u542b\u8cc7\u6599\u5eab\u6a94\u6848\u5132\u5b58\u7684\u6240\u6709\u78c1\u789f\u5340\u3002FlashArray \u5c07\u5efa\u7acb\u6b64\u4fdd\u8b77\u7fa4\u7d44\u4e2d\u6240\u6709\u78c1\u789f\u5340\u7684\u5373\u6642\u5feb\u7167\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"extracting-the-snapshot-name-and-creating-the-backup\">\u64f7\u53d6\u5feb\u7167\u540d\u7a31\u4e26\u5efa\u7acb\u5099\u4efd<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u4e0b\u4e00\u500b\u6b65\u9a5f\u4e2d\uff0c\u6211\u5011\u4f7f\u7528 <code>JSON_VALUE(@response,'$.result.items[0].name'\uff09<\/code> \u5f9e FlashArray \u7684 JSON \u56de\u61c9\u4e2d\u64f7\u53d6\u5feb\u7167\u540d\u7a31\u3002\u6b64\u540d\u7a31\u5c07\u5305\u542b\u5728\u5099\u4efd\u5a92\u9ad4\u8aaa\u660e\u4e2d\uff0c\u4f5c\u70ba\u50c5\u4e2d\u7e7c\u8cc7\u6599\u5099\u4efd\u7684\u4e00\u90e8\u5206\u3002\u5982\u679c FlashArray \u50b3\u56de\u6210\u529f\u4ee3\u78bc\uff08\u50b3\u56de\u4ee3\u78bc = 0\uff09\uff0c\u6211\u5011\u6703\u4f7f\u7528<code>\u5099\u4efd\u8cc7\u6599\u5eab<\/code>\u6307\u4ee4\u548c<code>METADATA_ONLY<\/code>\u9078\u9805\u7e7c\u7e8c\u5099\u4efd\u3002\u5982\u6b64\u53ef\u5efa\u7acb\u8f15\u91cf\u5099\u4efd\u6a94\u6848\uff0c\u50c5\u5305\u542b\u8cc7\u6599\u5eab\u4e2d\u7e7c\u8cc7\u6599\uff0c\u4e26\u53c3\u8003<code>MEDIADESCRIPTION<\/code> \u4e2d\u7684 FlashArray \u5feb\u7167\u3002\u5c07\u5feb\u7167\u540d\u7a31\u5132\u5b58\u5728 MEDIADESCRIPTION \u4e2d\uff0c\u5728\u57f7\u884c\u9084\u539f\u4f5c\u696d\u6642\uff0c\u80fd\u66f4\u8f15\u9b06\u5730\u8b58\u5225\u4e26\u5b9a\u4f4d\u5c0d\u61c9\u7684 FlashArray \u5feb\u7167\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u5feb\u7167\u64cd\u4f5c\u5931\u6557\uff0c\u6211\u5011\u6703\u8a18\u9304\u932f\u8aa4\u8a0a\u606f\uff0c\u4e26\u7acb\u5373\u89e3\u9664\u8cc7\u6599\u5eab\u7684\u66ab\u505c\uff0c\u4ee5\u6062\u5fa9\u6b63\u5e38\u5beb\u5165 I\/O\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>DECLARE @SnapshotName NVARCHAR(100)\nSET @SnapshotName = JSON_VALUE(@response, '$.result.items&#091;0].name')\n\nif ( @ret = 0 ) \n    BEGIN\n        BACKUP DATABASE &#091;TestDB1] TO DISK='SnapshotBack.bkm' WITH METADATA_ONLY, MEDIADESCRIPTION=@SnapshotName\n        PRINT 'Snapshot backup successful. Snapshot Name: ' + @SnapshotName\n    END\nELSE \n    BEGIN\n        ALTER DATABASE &#091;TestDB1] SET SUSPEND_FOR_SNAPSHOT_BACKUP = OFF\n        PRINT 'Error in REST call, snapshot backup failed. Database unsuspended.'\n    END\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"checking-the-sql-server-error-log\">\u6aa2\u67e5 SQL Server \u932f\u8aa4\u65e5\u8a8c<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u82e5\u8981\u9a57\u8b49\u5099\u4efd\u4f5c\u696d\uff0c\u6211\u5011\u6703\u6aa2\u67e5 SQL Server \u932f\u8aa4\u8a18\u9304\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SQL Server \u932f\u8aa4\u65e5\u8a8c\u78ba\u8a8d TestDB1 \u8cc7\u6599\u5eab\u6210\u529f\u5099\u4efd\u50c5\u4e2d\u7e7c\u8cc7\u6599\u7684\u5feb\u7167\u3002\u65e5\u8a8c\u986f\u793a\u8cc7\u6599\u5eab\u5df2\u66ab\u505c\u3001\u5beb\u5165 I\/O \u5df2\u51cd\u7d50\uff0c\u4e14\u5feb\u7167\u662f\u5728\u5b89\u5168\u6062\u5fa9 I\/O \u4e4b\u524d\u62cd\u651d\u3002\u7531\u65bc\u9019\u662f\u7d14\u4e2d\u7e7c\u8cc7\u6599\u7684\u5099\u4efd\uff0c\u56e0\u6b64\u4e0d\u6703\u8655\u7406\u4efb\u4f55\u8cc7\u6599\u9801\u9762\uff1b\u50c5\u64f7\u53d6\u4e2d\u7e7c\u8cc7\u6599\u4e26\u5beb\u5165\u6307\u5b9a\u7684 <code>.bkm<\/code>file\u3002\u5982\u6b64\u53ef\u78ba\u4fdd\u61c9\u7528\u7a0b\u5f0f\u4e00\u81f4\u6027\u7684\u5feb\u7167\uff0c\u4e26\u5c0d\u8cc7\u6599\u5eab\u53ef\u7528\u6027\u7522\u751f\u6700\u5c0f\u7684\u5f71\u97ff\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>EXEC xp_readerrorlog 0, 1, NULL, NULL, NULL, NULL, N'desc'\n\n2025-05-09 12:03:25.120 Backup  BACKUP DATABASE successfully processed 0 pages in 0.004 seconds (0.000 MB\/sec).\n2025-05-09 12:03:25.090 Backup  Database backed up. Database: TestDB1, creation date(time): 2025\/04\/30(16:05:02), pages dumped: 394061770, first LSN: 80323:19757:39, last LSN: 80323:19774:1, number of dump devices: 1, device information: (FILE=12, TYPE=DISK: {'C:\\Program Files\\Microsoft SQL Server\\MSSQL17.MSSQLSERVER\\MSSQL\\Backup\\SnapshotBack.bkm'}). This is an informational message only. No user action is required.\n2025-05-09 12:03:25.080 spid86  Database 'TestDB1' originally suspended for snapshot backup in session 86 successfully resumed in session 86.\n2025-05-09 12:03:25.080 spid86  Database 'TestDB1' released suspend locks in session 86.\n2025-05-09 12:03:25.080 spid86  I\/O was resumed on database TestDB1. No user action is required.\n2025-05-09 12:03:25.080 spid86  I\/O is frozen on database TestDB1. No user action is required. However, if I\/O is not resumed promptly, you could cancel the backup.\n2025-05-09 12:03:22.110 spid86  Database 'TestDB1' successfully suspended for snapshot backup in session 86.\n2025-05-09 12:03:22.110 spid86  I\/O is frozen on database TestDB1. No user action is required. However, if I\/O is not resumed promptly, you could cancel the backup.\n2025-05-09 12:03:22.070 spid86  Database 'TestDB1' acquired suspend locks in session 86.\n2025-05-09 12:03:22.070 spid86  Setting database option suspend_for_snapshot_backup to ON for database 'TestDB1'.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u4e0b\u662f\u6211\u5011\u4e0a\u8ff0\u4f7f\u7528\u7684\u5217\u5370\u5c0d\u5e33\u55ae\u8f38\u51fa\u3002\u5feb\u7167\u5099\u4efd\u6210\u529f\u5b8c\u6210\uff1a\u7cfb\u7d71\u901a\u904e FlashArray \u9a57\u8b49\uff0c\u66ab\u505c TestDB1 \u51cd\u7d50 I\/O\uff0c\u5efa\u7acb\u5feb\u7167<code>\uff08aen-sql-25-a-pg.17\uff09<\/code>\uff0c\u6062\u5fa9 I\/O\uff0c\u4e26\u5b8c\u6210\u50c5\u4e2d\u7e7c\u8cc7\u6599\u7684\u5099\u4efd\uff0c\u6240\u6709\u5099\u4efd\u90fd\u900f\u904e SQL Server \u65e5\u8a8c\u548c API \u56de\u61c9\u9032\u884c\u78ba\u8a8d\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Login Return Code: 0\nLogin Response: {\"response\":{\"status\":{\"http\":{\"code\":200,\"description\":\"\"}},\"headers\":{\"Date\":\"Fri, 09 May 2025 12:03:22 GMT\",\"Content-Length\":\"37\",\"Content-Type\":\"application\\\/json\",\"Server\":\"nginx\",\"x-auth-token\":\"75b2b984-a238-44ce-adbd-ff19decab148\",\"strict-transport-security\":\"max-age=31536000; includeSubDomains;\",\"content-security-policy\":\"frame-ancestors 'none'\",\"x-frame-options\":\"DENY\",\"x-content-type-options\":\"nosniff\",\"x-xss-protection\":\"1; mode=block\",\"x-request-id\":\"bdc6bbff70105c00fdeac8b0a1af565c\"}},\"result\":{\"items\":&#091;{\"username\":\"anocentino\"}]}}\n\nHeaders: {\"x-auth-token\":\"75b2b984-a238-44ce-adbd-ff19decab148\", \"Content-Type\":\"application\/json\"}\n\nDatabase 'TestDB1' acquired suspend locks in session 86.\nI\/O is frozen on database TestDB1. No user action is required. However, if I\/O is not resumed promptly, you could cancel the backup.\nDatabase 'TestDB1' successfully suspended for snapshot backup in session 86.\n\nSnapshot Return Code: 0\nSnapshot Response: {\"response\":{\"status\":{\"http\":{\"code\":200,\"description\":\"\"}},\"headers\":{\"Date\":\"Fri, 09 May 2025 12:03:22 GMT\",\"Content-Length\":\"340\",\"Content-Type\":\"application\\\/json\",\"Server\":\"nginx\",\"x-auth-token\":\"75b2b984-a238-44ce-adbd-ff19decab148\",\"strict-transport-security\":\"max-age=31536000; includeSubDomains;\",\"content-security-policy\":\"frame-ancestors 'none'\",\"x-frame-options\":\"DENY\",\"x-content-type-options\":\"nosniff\",\"x-xss-protection\":\"1; mode=block\",\"x-request-id\":\"e3089939224baca84d6ad69b485855de\"}},\"result\":{\"items\":&#091;{\"name\":\"aen-sql-25-a-pg.17\",\"id\":\"32e86de3-a3ee-3ae0-f74c-4bf5a7f74744\",\"space\":null,\"source\":{\"name\":\"aen-sql-25-a-pg\",\"id\":\"b6660b61-a8de-ae1b-cb65-e3045d13b5ba\"},\"suffix\":\"17\",\"destroyed\":false,\"created\":1746792202183,\"pod\":{\"name\":null,\"id\":null},\"time_remaining\":null,\"eradication_config\":{\"manual_eradication\":\"enabled\"}}]}}\n\nI\/O was resumed on database TestDB1. No user action is required.\nDatabase 'TestDB1' released suspend locks in session 86.\nDatabase 'TestDB1' originally suspended for snapshot backup in session 86 successfully resumed in session 86.\nProcessed 0 pages for database 'TestDB1', file 'test_data_01' on file 12.\nProcessed 0 pages for database 'TestDB1', file 'test_data_02' on file 12.\nProcessed 0 pages for database 'TestDB1', file 'test_data_03' on file 12.\nProcessed 0 pages for database 'TestDB1', file 'test_data_04' on file 12.\nProcessed 0 pages for database 'TestDB1', file 'test_data_05' on file 12.\nProcessed 0 pages for database 'TestDB1', file 'test_data_06' on file 12.\nProcessed 0 pages for database 'TestDB1', file 'test_data_07' on file 12.\nProcessed 0 pages for database 'TestDB1', file 'test_data_08' on file 12.\nBACKUP DATABASE successfully processed 0 pages in 0.004 seconds (0.000 MB\/sec).\n\nSnapshot backup successful. Snapshot Name: aen-sql-25-a-pg.17\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"wrapping-things-up\">\u7e3d\u7d50<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u672c\u7bc4\u4f8b\u5f37\u8abf SQL Server 2025 \u7684\u65b0<code>sp_invoke_external_rest_endpoint<\/code>\u7a0b\u5e8f\u5982\u4f55\u6539\u8b8a\u5099\u4efd\u81ea\u52d5\u5316\u3002\u5728\u6b64\u4e4b\u524d\uff0c\u8207\u5132\u5b58\u7cfb\u7d71\u6574\u5408\u9700\u8981 PowerShell \u6216\u5916\u90e8\u5de5\u5177\u3002\u73fe\u5728\uff0c\u6211\u5011\u53ef\u4ee5\u5f9e T-SQL \u539f\u751f\u9032\u884c REST API \u547c\u53eb\uff0c\u7c21\u5316\u5de5\u4f5c\u6d41\u7a0b\u4e26\u964d\u4f4e\u8907\u96dc\u6027\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3b\u8981\u512a\u9ede\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u539f\u751f REST \u6574\u5408<\/strong>\uff1a\u6700\u5f8c\uff0c\u6211\u5011\u53ef\u4ee5\u76f4\u63a5\u5f9e T-SQL \u9032\u884c API \u547c\u53eb\uff0c\u800c\u4e0d\u5fc5\u8df3\u5230 PowerShell \u6216\u5176\u4ed6\u6307\u4ee4\u78bc\u8a9e\u8a00<\/li>\n\n\n\n<li><strong>\u7c21\u5316\u81ea\u52d5\u5316<\/strong>\uff1a\u5728\u4e00\u500b\u5730\u65b9\u5efa\u7acb\u60a8\u7684\u6574\u500b\u5099\u4efd\u5de5\u4f5c\u6d41\u7a0b &#8211; \u7121\u9700\u5728\u4e0d\u540c\u5de5\u5177\u4e4b\u9593\u5207\u63db\u66f4\u591a\u5167\u5bb9<\/li>\n\n\n\n<li><strong>\u964d\u4f4e\u76f8\u4f9d\u6027<\/strong>\uff1a\u6d88\u9664 SQL Server \u8207\u5132\u5b58\u7cfb\u7d71\u4e4b\u9593\u7684\u4e2d\u9593\u5c64\uff0c\u6e1b\u5c11\u6d3b\u52d5\u96f6\u4ef6\uff0c\u6e1b\u5c11\u6f5b\u5728\u7684\u6545\u969c\u9ede<\/li>\n\n\n\n<li><strong>\u63d0\u5347\u5b89\u5168\u6027<\/strong>\uff1a\u5728 SQL Server \u5167\u800c\u975e\u5916\u90e8\u6307\u4ee4\u78bc\u6a94\u6848\u4e2d\u96c6\u4e2d\u9032\u884c\u9a57\u8b49<\/li>\n\n\n\n<li><strong>\u66f4\u597d\u7684\u6548\u80fd<\/strong>\uff1a\u5728 SQL Server \u5167\u57f7\u884c\u4f5c\u696d\uff0c\u610f\u5473\u8457\u7ba1\u7406\u6210\u672c\u66f4\u4f4e\uff0c\u57f7\u884c\u6642\u9593\u66f4\u5feb<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u6b64\u529f\u80fd\u53ef\u6d88\u9664\u60c5\u5883\u5207\u63db\uff0c\u4e26\u5c07\u73fe\u4ee3\u5316\u81ea\u52d5\u5316\u529f\u80fd\u5c0e\u5165\u8cc7\u6599\u5eab\u5f15\u64ce\u3002\u53ea\u9700\u78ba\u4fdd\u5b89\u5168\u5132\u5b58 API \u6b0a\u6756\uff0c\u4e26\u5728\u751f\u7522\u4e2d\u5be6\u65bd\u9069\u7576\u7684\u932f\u8aa4\u8655\u7406\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7e3d\u800c\u8a00\u4e4b\uff0cSQL Server 2025 \u7684 REST \u6574\u5408\u5c0d\u65bc\u7ba1\u7406\u8907\u96dc\u3001\u5927\u898f\u6a21\u74b0\u5883\u7684 DBA \u4f86\u8aaa\uff0c\u662f\u4e00\u5927\u6210\u529f\u3002<\/p>\n\n\n\n<div class=\"wp-block-group mobile-lighten-5 box-shadow position-relative banner-cta-until-blocks-img is-layout-flow wp-block-group-is-layout-flow has-background\" style=\"margin-top:20px;margin-bottom:20px;padding-top:20px;padding-right:20px;padding-bottom:10px;padding-left:20px;background-image:url(&apos;https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2024\/04\/defeat-randsomeware-fast-clean-recovery-data.png&apos;);background-size:cover;\">\n<div class=\"wp-block-columns are-vertically-aligned-center gap-0 banner-cta-until-blocks flex-direction-column is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center flex-basisis is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:190px\">\n<div class=\"wp-block-group is-vertical is-content-justification-center is-layout-flex wp-container-core-group-is-layout-c3aed785 wp-block-group-is-layout-flex\" style=\"padding-top:10px;padding-bottom:10px\">\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2024\/04\/pure-logo-cropped.svg\" alt=\"Logo - Pure Storage - &#x88C1;&#x5207;&#x5B8C;&#x6210;\" class=\"wp-image-139836\" style=\"width:160px;height:auto\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-nowrap is-layout-flex wp-container-core-buttons-is-layout-e31d464f wp-block-buttons-is-layout-flex block-visibility-hide-medium-screen block-visibility-hide-small-screen\" id=\"banner-cta-until-blocks-button\" style=\"margin-top:10px;margin-bottom:10px\">\n<div class=\"wp-block-button has-custom-font-size text-align-center banner-cta-until-blocks-button\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.208), 1rem);line-height:1.2\"><a class=\"wp-block-button__link has-tertiary-background-color has-background has-text-align-center wp-element-button\" href=\"https:\/\/www.purestorage.com\/solutions\/data-protection.html?utm_medium=ppc&amp;utm_source=google&amp;utm_campaign=brand&amp;utm_region=ams_all&amp;utm_content=refresh_brand_data_protection&amp;utm_creative=default&amp;utm_term=default&amp;utm_keyword=default&amp;cq_con=161076222155&amp;cq_term=pure%20storage%20ransomware&amp;cq_plac=&amp;cq_net=g&amp;cq_plt=gp&amp;gad_source=1&amp;gbraid=0AAAAADq2vDtaagpWlHD0GDJvd4bOl2VHL&amp;gclid=Cj0KCQjw0Oq2BhCCARIsAA5hubUxe0gvkfFsIkMXfQ5TxzXIcYQWNCUtGXSW3AdvjXp4f43Bthm60rwaAkoaEALw_wcB&amp;gclsrc=aw.ds\" style=\"padding-top:10px;padding-right:14px;padding-bottom:10px;padding-left:14px\">\u4fdd\u6301\u51b7\u975c<br\/>\u5fa9\u539f\u65bc<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-f4c6b382 wp-block-group-is-layout-flex\">\n<h2 class=\"wp-block-heading has-contrast-color has-text-color has-link-color wp-elements-2f7257432bbf75f19191e13e9ea79789\" id=\"h-recover-your-data-before-you-have-to-tell-anyone-you-had-to-recover-it\" style=\"font-size:clamp(1.146rem, 1.146rem + ((1vw - 0.2rem) * 1.09), 1.8rem);line-height:1.2\">\u5728\u60a8\u5fc5\u9808\u544a\u8a34\u4efb\u4f55\u4eba\u5fc5\u9808\u5fa9\u539f\u8cc7\u6599\u4e4b\u524d\uff0c\u8acb\u5148\u5fa9\u539f\u60a8\u7684\u8cc7\u6599\u3002<\/h2>\n\n\n\n<p class=\"has-contrast-color has-text-color has-link-color wp-elements-3019b28caf989526f9639c12fd89018f wp-block-paragraph\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.208), 1rem);\">\u4ee5\u5feb\u901f\u3001\u4e7e\u6de8\u7684\u8cc7\u6599\u5fa9\u539f\u529f\u80fd\u64ca\u6557Ransomware\u3002<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-nowrap is-layout-flex wp-container-core-buttons-is-layout-e1dda8a7 wp-block-buttons-is-layout-flex block-visibility-hide-large-screen\" style=\"margin-top:30px;margin-bottom:30px\">\n<div class=\"wp-block-button has-custom-font-size banner-cta-until-blocks-button\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.208), 1rem);line-height:1.2\"><a class=\"wp-block-button__link has-tertiary-background-color has-background wp-element-button\" href=\"https:\/\/www.purestorage.com\/solutions\/data-protection.html?utm_medium=ppc&amp;utm_source=google&amp;utm_campaign=brand&amp;utm_region=ams_all&amp;utm_content=refresh_brand_data_protection&amp;utm_creative=default&amp;utm_term=default&amp;utm_keyword=default&amp;cq_con=161076222155&amp;cq_term=pure%20storage%20ransomware&amp;cq_plac=&amp;cq_net=g&amp;cq_plt=gp&amp;gad_source=1&amp;gbraid=0AAAAADq2vDtaagpWlHD0GDJvd4bOl2VHL&amp;gclid=Cj0KCQjw0Oq2BhCCARIsAA5hubUxe0gvkfFsIkMXfQ5TxzXIcYQWNCUtGXSW3AdvjXp4f43Bthm60rwaAkoaEALw_wcB&amp;gclsrc=aw.ds\" style=\"padding-top:10px;padding-right:14px;padding-bottom:10px;padding-left:14px\">\u4fdd\u6301\u51b7\u975c\u8207\u5fa9\u539f<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:30%\">\n<div class=\"wp-block-group sticky-content has-mint-green-500-background-color has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"border-radius:20px;padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px\">\n<h2 class=\"wp-block-heading has-text-align-center has-ash-gray-500-color has-text-color has-link-color wp-elements-7fb7912fb56b6612d57017c585c57309\" id=\"h-title\" style=\"font-size:px\">Dynamic Storage<\/h2>\n\n\n\n<p class=\"has-text-align-center has-ash-gray-500-color has-text-color has-link-color wp-elements-9fdb12f75aab4a97ffd9c4e54f95175f wp-block-paragraph\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.208), 1rem);\">Learn more about high-performance, all-flash storage.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-f8bdad00 wp-block-buttons-is-layout-flex\" style=\"margin-top:1em;margin-bottom:1em\">\n<div class=\"wp-block-button is-style-outline button-sticky is-style-outline--2\"><a class=\"wp-block-button__link has-cloud-white-500-color has-basil-green-500-background-color has-text-color has-background has-link-color has-inter-font-family has-custom-font-size wp-element-button\" href=\"https:\/\/www.purestorage.com\/products\/unified-block-file-storage.html\" style=\"border-style:none;border-width:0px;border-radius:4px;padding-top:14px;padding-right:16px;padding-bottom:14px;padding-left:16px;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.208), 16px);\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Explore FlashArray<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>SQL Server 2025 \u63d0\u4f9b\u529f\u80fd\u5f37\u5927\u7684\u65b0\u529f\u80fd\uff0c\u8b93\u76f4\u63a5\u5f9e T-SQL \u547c\u53eb REST API \u8b8a\u5f97\u66f4\u5bb9\u6613\u3002\u5728\u9019\u88e1\uff0c\u6211\u5011\u5c07\u63a2\u8a0e\u5982\u4f55\u642d\u914d Pure Storage API \u4f7f\u7528\uff0c\u4ee5\u8abf\u5ea6\u5feb\u7167\u4f5c\u696d\u3002<\/p>\n","protected":false},"author":602,"featured_media":163557,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[14636],"tags":[14555,14605,15198,14606,13032,14653],"content-position":[],"ppma_author":[14448],"class_list":["post-164901","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-purely-technical","tag-cyber-resiliency-zh-hant","tag-data-backup-and-recovery-zh-hant","tag-database-zh-hant","tag-pure-safemode-zh-hant","tag-sql-server","tag-sql-server-zh-hant"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v28.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>\u7c21\u5316 T-SQL \u5feb\u7167\u5099\u4efd | Everpure Blog<\/title>\n<meta name=\"description\" content=\"\u5728\u9019\u88e1\uff0c\u6211\u5011\u63a2\u8a0e\u5982\u4f55\u5728 Pure Storage API \u4e2d\uff0c\u4f7f\u7528\u65b0\u7684 SQL Server 2025 \u529f\u80fd\uff0c\u4e26\u7c21\u5316 T-SQL \u5feb\u7167\u5099\u4efd\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.everpuredata.com\/zh-hant\/purely-technical\/sql-server-2025-streamlining-t-sql-snapshot-backups\/\" \/>\n<meta property=\"og:locale\" content=\"zh_TW\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server 2025 \u4e2d\u7684 T-SQL REST API \u6574\u5408\uff1a\u7c21\u5316 T-SQL \u5feb\u7167\u5099\u4efd\" \/>\n<meta property=\"og:description\" content=\"\u5728\u9019\u88e1\uff0c\u6211\u5011\u63a2\u8a0e\u5982\u4f55\u5728 Pure Storage API \u4e2d\uff0c\u4f7f\u7528\u65b0\u7684 SQL Server 2025 \u529f\u80fd\uff0c\u4e26\u7c21\u5316 T-SQL \u5feb\u7167\u5099\u4efd\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.everpuredata.com\/zh-hant\/purely-technical\/sql-server-2025-streamlining-t-sql-snapshot-backups\/\" \/>\n<meta property=\"og:site_name\" content=\"Everpure Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/PureStorage\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-19T17:33:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-17T14:57:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2025\/05\/Streamlining-T-SQL-Snapshot-Backups.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1650\" \/>\n\t<meta property=\"og:image:height\" content=\"1064\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Anthony Nocentino\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@purestorage\" \/>\n<meta name=\"twitter:site\" content=\"@purestorage\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Anthony Nocentino\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9810\u4f30\u95b1\u8b80\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \u5206\u9418\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/purely-technical\\\/sql-server-2025-streamlining-t-sql-snapshot-backups\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/purely-technical\\\/sql-server-2025-streamlining-t-sql-snapshot-backups\\\/\"},\"author\":{\"name\":\"Anthony Nocentino\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/#\\\/schema\\\/person\\\/cada41552b5f5d21b7bb1313929412eb\"},\"headline\":\"SQL Server 2025 \u4e2d\u7684 T-SQL REST API \u6574\u5408\uff1a\u7c21\u5316 T-SQL \u5feb\u7167\u5099\u4efd\",\"datePublished\":\"2025-05-19T17:33:50+00:00\",\"dateModified\":\"2025-06-17T14:57:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/purely-technical\\\/sql-server-2025-streamlining-t-sql-snapshot-backups\\\/\"},\"wordCount\":144,\"publisher\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/purely-technical\\\/sql-server-2025-streamlining-t-sql-snapshot-backups\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Streamlining-T-SQL-Snapshot-Backups.webp\",\"keywords\":[\"Cyber Resilience\",\"Data Backup and Recovery\",\"Database\",\"SafeMode Snapshots\",\"SQL Server\",\"SQL Server\"],\"articleSection\":[\"Purely Technical\"],\"inLanguage\":\"zh-TW\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/purely-technical\\\/sql-server-2025-streamlining-t-sql-snapshot-backups\\\/\",\"url\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/purely-technical\\\/sql-server-2025-streamlining-t-sql-snapshot-backups\\\/\",\"name\":\"\u7c21\u5316 T-SQL \u5feb\u7167\u5099\u4efd | Everpure Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/purely-technical\\\/sql-server-2025-streamlining-t-sql-snapshot-backups\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/purely-technical\\\/sql-server-2025-streamlining-t-sql-snapshot-backups\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Streamlining-T-SQL-Snapshot-Backups.webp\",\"datePublished\":\"2025-05-19T17:33:50+00:00\",\"dateModified\":\"2025-06-17T14:57:26+00:00\",\"description\":\"\u5728\u9019\u88e1\uff0c\u6211\u5011\u63a2\u8a0e\u5982\u4f55\u5728 Pure Storage API \u4e2d\uff0c\u4f7f\u7528\u65b0\u7684 SQL Server 2025 \u529f\u80fd\uff0c\u4e26\u7c21\u5316 T-SQL \u5feb\u7167\u5099\u4efd\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/purely-technical\\\/sql-server-2025-streamlining-t-sql-snapshot-backups\\\/#breadcrumb\"},\"inLanguage\":\"zh-TW\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/purely-technical\\\/sql-server-2025-streamlining-t-sql-snapshot-backups\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-TW\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/purely-technical\\\/sql-server-2025-streamlining-t-sql-snapshot-backups\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Streamlining-T-SQL-Snapshot-Backups.webp\",\"contentUrl\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Streamlining-T-SQL-Snapshot-Backups.webp\",\"width\":1650,\"height\":1064,\"caption\":\"Streamlining T-SQL Snapshot Backups\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/purely-technical\\\/sql-server-2025-streamlining-t-sql-snapshot-backups\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server 2025 \u4e2d\u7684 T-SQL REST API \u6574\u5408\uff1a\u7c21\u5316 T-SQL \u5feb\u7167\u5099\u4efd\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/#website\",\"url\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/\",\"name\":\"Everpure Blog\",\"description\":\"Unleash the power of your data with an intelligent, unified storage and data management platform built for resilience and AI.\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-TW\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/#organization\",\"name\":\"Pure Storage\",\"url\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-TW\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/download-5.png\",\"contentUrl\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/download-5.png\",\"width\":302,\"height\":167,\"caption\":\"Pure Storage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/PureStorage\",\"https:\\\/\\\/x.com\\\/purestorage\",\"https:\\\/\\\/www.instagram.com\\\/purestorage\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/pure-storage\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/purestorage\",\"https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Pure_Storage\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/#\\\/schema\\\/person\\\/cada41552b5f5d21b7bb1313929412eb\",\"name\":\"Anthony Nocentino\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-TW\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/Anthony-Noncentino.png001f31d95d657c3ea42649b1b5d81d07\",\"url\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/Anthony-Noncentino.png\",\"contentUrl\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/Anthony-Noncentino.png\",\"caption\":\"Anthony Nocentino\"},\"description\":\"Anthony is a Principal Field Solution Architect at Everpure as well as a Pluralsight Author, a Microsoft Data Platform MVP, Linux Expert, and Corporate Problem Solver. Anthony designs solutions, deploys the technology, and provides expertise on business system performance, architecture, and security. Anthony has a Bachelors and Masters in Computer Science with research publications in high performance\\\/low latency data access algorithms and spatial database systems.\",\"url\":\"https:\\\/\\\/blog.everpuredata.com\\\/zh-hant\\\/author\\\/anthony-nocentino\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u7c21\u5316 T-SQL \u5feb\u7167\u5099\u4efd | Everpure Blog","description":"\u5728\u9019\u88e1\uff0c\u6211\u5011\u63a2\u8a0e\u5982\u4f55\u5728 Pure Storage API \u4e2d\uff0c\u4f7f\u7528\u65b0\u7684 SQL Server 2025 \u529f\u80fd\uff0c\u4e26\u7c21\u5316 T-SQL \u5feb\u7167\u5099\u4efd","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.everpuredata.com\/zh-hant\/purely-technical\/sql-server-2025-streamlining-t-sql-snapshot-backups\/","og_locale":"zh_TW","og_type":"article","og_title":"SQL Server 2025 \u4e2d\u7684 T-SQL REST API \u6574\u5408\uff1a\u7c21\u5316 T-SQL \u5feb\u7167\u5099\u4efd","og_description":"\u5728\u9019\u88e1\uff0c\u6211\u5011\u63a2\u8a0e\u5982\u4f55\u5728 Pure Storage API \u4e2d\uff0c\u4f7f\u7528\u65b0\u7684 SQL Server 2025 \u529f\u80fd\uff0c\u4e26\u7c21\u5316 T-SQL \u5feb\u7167\u5099\u4efd","og_url":"https:\/\/blog.everpuredata.com\/zh-hant\/purely-technical\/sql-server-2025-streamlining-t-sql-snapshot-backups\/","og_site_name":"Everpure Blog","article_publisher":"https:\/\/www.facebook.com\/PureStorage","article_published_time":"2025-05-19T17:33:50+00:00","article_modified_time":"2025-06-17T14:57:26+00:00","og_image":[{"width":1650,"height":1064,"url":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2025\/05\/Streamlining-T-SQL-Snapshot-Backups.webp","type":"image\/webp"}],"author":"Anthony Nocentino","twitter_card":"summary_large_image","twitter_creator":"@purestorage","twitter_site":"@purestorage","twitter_misc":{"\u4f5c\u8005:":"Anthony Nocentino","\u9810\u4f30\u95b1\u8b80\u6642\u9593":"4 \u5206\u9418"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.everpuredata.com\/zh-hant\/purely-technical\/sql-server-2025-streamlining-t-sql-snapshot-backups\/#article","isPartOf":{"@id":"https:\/\/blog.everpuredata.com\/zh-hant\/purely-technical\/sql-server-2025-streamlining-t-sql-snapshot-backups\/"},"author":{"name":"Anthony Nocentino","@id":"https:\/\/blog.everpuredata.com\/zh-hant\/#\/schema\/person\/cada41552b5f5d21b7bb1313929412eb"},"headline":"SQL Server 2025 \u4e2d\u7684 T-SQL REST API \u6574\u5408\uff1a\u7c21\u5316 T-SQL \u5feb\u7167\u5099\u4efd","datePublished":"2025-05-19T17:33:50+00:00","dateModified":"2025-06-17T14:57:26+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.everpuredata.com\/zh-hant\/purely-technical\/sql-server-2025-streamlining-t-sql-snapshot-backups\/"},"wordCount":144,"publisher":{"@id":"https:\/\/blog.everpuredata.com\/zh-hant\/#organization"},"image":{"@id":"https:\/\/blog.everpuredata.com\/zh-hant\/purely-technical\/sql-server-2025-streamlining-t-sql-snapshot-backups\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2025\/05\/Streamlining-T-SQL-Snapshot-Backups.webp","keywords":["Cyber Resilience","Data Backup and Recovery","Database","SafeMode Snapshots","SQL Server","SQL Server"],"articleSection":["Purely Technical"],"inLanguage":"zh-TW"},{"@type":"WebPage","@id":"https:\/\/blog.everpuredata.com\/zh-hant\/purely-technical\/sql-server-2025-streamlining-t-sql-snapshot-backups\/","url":"https:\/\/blog.everpuredata.com\/zh-hant\/purely-technical\/sql-server-2025-streamlining-t-sql-snapshot-backups\/","name":"\u7c21\u5316 T-SQL \u5feb\u7167\u5099\u4efd | Everpure Blog","isPartOf":{"@id":"https:\/\/blog.everpuredata.com\/zh-hant\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.everpuredata.com\/zh-hant\/purely-technical\/sql-server-2025-streamlining-t-sql-snapshot-backups\/#primaryimage"},"image":{"@id":"https:\/\/blog.everpuredata.com\/zh-hant\/purely-technical\/sql-server-2025-streamlining-t-sql-snapshot-backups\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2025\/05\/Streamlining-T-SQL-Snapshot-Backups.webp","datePublished":"2025-05-19T17:33:50+00:00","dateModified":"2025-06-17T14:57:26+00:00","description":"\u5728\u9019\u88e1\uff0c\u6211\u5011\u63a2\u8a0e\u5982\u4f55\u5728 Pure Storage API \u4e2d\uff0c\u4f7f\u7528\u65b0\u7684 SQL Server 2025 \u529f\u80fd\uff0c\u4e26\u7c21\u5316 T-SQL \u5feb\u7167\u5099\u4efd","breadcrumb":{"@id":"https:\/\/blog.everpuredata.com\/zh-hant\/purely-technical\/sql-server-2025-streamlining-t-sql-snapshot-backups\/#breadcrumb"},"inLanguage":"zh-TW","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.everpuredata.com\/zh-hant\/purely-technical\/sql-server-2025-streamlining-t-sql-snapshot-backups\/"]}]},{"@type":"ImageObject","inLanguage":"zh-TW","@id":"https:\/\/blog.everpuredata.com\/zh-hant\/purely-technical\/sql-server-2025-streamlining-t-sql-snapshot-backups\/#primaryimage","url":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2025\/05\/Streamlining-T-SQL-Snapshot-Backups.webp","contentUrl":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2025\/05\/Streamlining-T-SQL-Snapshot-Backups.webp","width":1650,"height":1064,"caption":"Streamlining T-SQL Snapshot Backups"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.everpuredata.com\/zh-hant\/purely-technical\/sql-server-2025-streamlining-t-sql-snapshot-backups\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.everpuredata.com\/zh-hant\/"},{"@type":"ListItem","position":2,"name":"SQL Server 2025 \u4e2d\u7684 T-SQL REST API \u6574\u5408\uff1a\u7c21\u5316 T-SQL \u5feb\u7167\u5099\u4efd"}]},{"@type":"WebSite","@id":"https:\/\/blog.everpuredata.com\/zh-hant\/#website","url":"https:\/\/blog.everpuredata.com\/zh-hant\/","name":"Everpure Blog","description":"Unleash the power of your data with an intelligent, unified storage and data management platform built for resilience and AI.","publisher":{"@id":"https:\/\/blog.everpuredata.com\/zh-hant\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.everpuredata.com\/zh-hant\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-TW"},{"@type":"Organization","@id":"https:\/\/blog.everpuredata.com\/zh-hant\/#organization","name":"Pure Storage","url":"https:\/\/blog.everpuredata.com\/zh-hant\/","logo":{"@type":"ImageObject","inLanguage":"zh-TW","@id":"https:\/\/blog.everpuredata.com\/zh-hant\/#\/schema\/logo\/image\/","url":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2019\/08\/download-5.png","contentUrl":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2019\/08\/download-5.png","width":302,"height":167,"caption":"Pure Storage"},"image":{"@id":"https:\/\/blog.everpuredata.com\/zh-hant\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/PureStorage","https:\/\/x.com\/purestorage","https:\/\/www.instagram.com\/purestorage","https:\/\/www.linkedin.com\/company\/pure-storage","https:\/\/www.youtube.com\/user\/purestorage","https:\/\/en.wikipedia.org\/wiki\/Pure_Storage"]},{"@type":"Person","@id":"https:\/\/blog.everpuredata.com\/zh-hant\/#\/schema\/person\/cada41552b5f5d21b7bb1313929412eb","name":"Anthony Nocentino","image":{"@type":"ImageObject","inLanguage":"zh-TW","@id":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2024\/12\/Anthony-Noncentino.png001f31d95d657c3ea42649b1b5d81d07","url":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2024\/12\/Anthony-Noncentino.png","contentUrl":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2024\/12\/Anthony-Noncentino.png","caption":"Anthony Nocentino"},"description":"Anthony is a Principal Field Solution Architect at Everpure as well as a Pluralsight Author, a Microsoft Data Platform MVP, Linux Expert, and Corporate Problem Solver. Anthony designs solutions, deploys the technology, and provides expertise on business system performance, architecture, and security. Anthony has a Bachelors and Masters in Computer Science with research publications in high performance\/low latency data access algorithms and spatial database systems.","url":"https:\/\/blog.everpuredata.com\/zh-hant\/author\/anthony-nocentino\/"}]}},"authors":[{"term_id":14448,"user_id":602,"is_guest":0,"slug":"anthony-nocentino","display_name":"Anthony Nocentino","avatar_url":{"url":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2024\/12\/Anthony-Noncentino.png","url2x":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2024\/12\/Anthony-Noncentino.png"},"author_category":"","first_name":"Anthony","last_name":"Nocentino","user_url":"","job_title":"","description":"Anthony is a Principal Field Solution Architect at Pure Storage as well as a Pluralsight Author, a Microsoft Data Platform MVP, Linux Expert, and Corporate Problem Solver. Anthony designs solutions, deploys the technology, and provides expertise on business system performance, architecture, and security. Anthony has a Bachelors and Masters in Computer Science with research publications in high performance\/low latency data access algorithms and spatial database systems."}],"_links":{"self":[{"href":"https:\/\/blog.everpuredata.com\/zh-hant\/wp-json\/wp\/v2\/posts\/164901","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.everpuredata.com\/zh-hant\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.everpuredata.com\/zh-hant\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.everpuredata.com\/zh-hant\/wp-json\/wp\/v2\/users\/602"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.everpuredata.com\/zh-hant\/wp-json\/wp\/v2\/comments?post=164901"}],"version-history":[{"count":0,"href":"https:\/\/blog.everpuredata.com\/zh-hant\/wp-json\/wp\/v2\/posts\/164901\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.everpuredata.com\/zh-hant\/wp-json\/wp\/v2\/media\/163557"}],"wp:attachment":[{"href":"https:\/\/blog.everpuredata.com\/zh-hant\/wp-json\/wp\/v2\/media?parent=164901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.everpuredata.com\/zh-hant\/wp-json\/wp\/v2\/categories?post=164901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.everpuredata.com\/zh-hant\/wp-json\/wp\/v2\/tags?post=164901"},{"taxonomy":"content-position","embeddable":true,"href":"https:\/\/blog.everpuredata.com\/zh-hant\/wp-json\/wp\/v2\/content-position?post=164901"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.everpuredata.com\/zh-hant\/wp-json\/wp\/v2\/ppma_author?post=164901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}