SQLServer 存储过程,打印其他存储过程或函数对象的创建语句 代码来源于系统自带的存储过程 无 Create PROCEDURE [dbo].[sp_PrintProc] @objname NVARCHAR(776) , @columnname SYSNAME = NULLAS --打印对象 SET nocount ON DECLARE @dbname SYSNAME , @objid
SQLServer 存储过程,打印其他存储过程或函数对象的创建语句
代码来源于系统自带的存储过程

Create PROCEDURE [dbo].[sp_PrintProc] @objname NVARCHAR(776) , @columnname SYSNAME = NULL AS --打印对象 SET nocount ON DECLARE @dbname SYSNAME , @objid INT , @BlankSpaceAdded INT , @BasePos INT , @CurrentPos INT , @TextLength INT , @LineId INT , @AddOnLen INT , @LFCR INT --lengths of line feed carriage return , @DefinedLength INT /* NOTE: Length of @SyscomText is 4000 to replace the length of ** text column in syscomments. ** lengths on @Line, #CommentText Text column and ** value for @DefinedLength are all 2550. These need to all have ** the same values. 2550 was selected in order for the max length ** display using down level clients */ , @SyscomText NVARCHAR(4000) , @Line NVARCHAR(2550) SELECT @DefinedLength = 2550 SELECT @BlankSpaceAdded = 0 /*Keeps track of blank spaces at end of lines. Note Len function ignores trailing blank spaces*/ CREATE TABLE #CommentText ( LineId INT , Text NVARCHAR(2550) COLLATE database_default ) /* ** Make sure the @objname is local to the current database. */ SELECT @dbname = PARSENAME(@objname, 3) IF @dbname IS NULL SELECT @dbname = DB_NAME() ELSE IF @dbname <> DB_NAME() BEGIN RAISERROR(15250,-1,-1) RETURN (1) END /* ** See if @objname exists. */ SELECT @objid = OBJECT_ID(@objname) IF ( @objid IS NULL ) BEGIN RAISERROR(15009,-1,-1,@objname,@dbname) RETURN (1) END -- If second parameter was given. IF ( @columnname IS NOT NULL ) BEGIN -- Check if it is a table IF ( SELECT COUNT(*) FROM sys.objects WHERE object_id = @objid AND type IN ( 'S ', 'U ', 'TF' ) ) = 0 BEGIN RAISERROR(15218,-1,-1,@objname) RETURN(1) END -- check if it is a correct column name IF ( ( SELECT 'count' = COUNT(*) FROM sys.columns WHERE name = @columnname AND object_id = @objid ) = 0 ) BEGIN RAISERROR(15645,-1,-1,@columnname) RETURN(1) END IF ( COLUMNPROPERTY(@objid, @columnname, 'IsComputed') = 0 ) BEGIN RAISERROR(15646,-1,-1,@columnname) RETURN(1) END DECLARE ms_crs_syscom CURSOR LOCAL FOR SELECT text FROM syscomments WHERE id = @objid AND encrypted = 0 AND number = (SELECT column_id FROM sys.columns WHERE name = @columnname AND object_id = @objid) ORDER BY number,colid FOR READ ONLY END ELSE IF @objid < 0 -- Handle system-objects BEGIN -- Check count of rows with text data IF ( SELECT COUNT(*) FROM master.sys.syscomments WHERE id = @objid AND text IS NOT NULL ) = 0 BEGIN RAISERROR(15197,-1,-1,@objname) RETURN (1) END DECLARE ms_crs_syscom CURSOR LOCAL FOR SELECT text FROM master.sys.syscomments WHERE id = @objid ORDER BY number, colid FOR READ ONLY END ELSE BEGIN /* ** Find out how many lines of text are coming back, ** and return if there are none. */ IF ( SELECT COUNT(*) FROM syscomments c , sysobjects o WHERE o.xtype NOT IN ( 'S', 'U' ) AND o.id = c.id AND o.id = @objid ) = 0 BEGIN RAISERROR(15197,-1,-1,@objname) RETURN (1) END IF ( SELECT COUNT(*) FROM syscomments WHERE id = @objid AND encrypted = 0 ) = 0 BEGIN RAISERROR(15471,-1,-1,@objname) RETURN (0) END DECLARE ms_crs_syscom CURSOR LOCAL FOR SELECT text FROM syscomments WHERE id = @objid AND encrypted = 0 ORDER BY number, colid FOR READ ONLY END /* ** else get the text. */ SELECT @LFCR = 2 SELECT @LineId = 1 OPEN ms_crs_syscom FETCH NEXT FROM ms_crs_syscom INTO @SyscomText WHILE @@fetch_status >= 0 BEGIN SELECT @BasePos = 1 SELECT @CurrentPos = 1 SELECT @TextLength = LEN(@SyscomText) WHILE @CurrentPos != 0 BEGIN --Looking for end of line followed by carriage return SELECT @CurrentPos = CHARINDEX(CHAR(13) + CHAR(10), @SyscomText, @BasePos) --If carriage return found IF @CurrentPos != 0 BEGIN /*If new value for @Lines length will be > then the **set length then insert current contents of @line **and proceed. */ WHILE ( ISNULL(LEN(@Line), 0) + @BlankSpaceAdded + @CurrentPos - @BasePos + @LFCR ) > @DefinedLength BEGIN SELECT @AddOnLen = @DefinedLength - ( ISNULL(LEN(@Line), 0) + @BlankSpaceAdded ) INSERT #CommentText VALUES ( @LineId, ISNULL(@Line, N'') + ISNULL(SUBSTRING(@SyscomText, @BasePos, @AddOnLen), N'') ) SELECT @Line = NULL , @LineId = @LineId + 1 , @BasePos = @BasePos + @AddOnLen , @BlankSpaceAdded = 0 END SELECT @Line = ISNULL(@Line, N'') + ISNULL(SUBSTRING(@SyscomText, @BasePos, @CurrentPos - @BasePos + @LFCR), N'') SELECT @BasePos = @CurrentPos + 2 INSERT #CommentText VALUES ( @LineId, @Line ) SELECT @LineId = @LineId + 1 SELECT @Line = NULL END ELSE --else carriage return not found BEGIN IF @BasePos <= @TextLength BEGIN /*If new value for @Lines length will be > then the **defined length */ WHILE ( ISNULL(LEN(@Line), 0) + @BlankSpaceAdded + @TextLength - @BasePos + 1 ) > @DefinedLength BEGIN SELECT @AddOnLen = @DefinedLength - ( ISNULL(LEN(@Line), 0) + @BlankSpaceAdded ) INSERT #CommentText VALUES ( @LineId, ISNULL(@Line, N'') + ISNULL(SUBSTRING(@SyscomText, @BasePos, @AddOnLen), N'') ) SELECT @Line = NULL , @LineId = @LineId + 1 , @BasePos = @BasePos + @AddOnLen , @BlankSpaceAdded = 0 END SELECT @Line = ISNULL(@Line, N'') + ISNULL(SUBSTRING(@SyscomText, @BasePos, @TextLength - @BasePos + 1), N'') IF LEN(@Line) < @DefinedLength AND CHARINDEX(' ', @SyscomText, @TextLength + 1) > 0 BEGIN SELECT @Line = @Line + ' ' , @BlankSpaceAdded = 1 END END END END FETCH NEXT FROM ms_crs_syscom INTO @SyscomText END IF @Line IS NOT NULL INSERT #CommentText VALUES ( @LineId, @Line ) DECLARE @printLine NVARCHAR(2550) DECLARE PostCur CURSOR FOR SELECT Text FROM #CommentText ORDER BY LineId OPEN PostCur FETCH NEXT FROM PostCur INTO @printLine WHILE @@fetch_status = 0 BEGIN PRINT @printLine FETCH NEXT FROM PostCur INTO @printLine END CLOSE PostCur DEALLOCATE PostCur CLOSE ms_crs_syscom DEALLOCATE ms_crs_syscom DROP TABLE #CommentText RETURN (0) -- sp_PrintProc
--存储过程查询 declare @StrSql varchar(max) set @StrSql=( Select 'exec('+char(39)+'sp_PrintProc '+name+char(39)+');' as [data()] From sys.objects where Type='P' and name like 'softManage_%' for xml path('') ) exec(@StrSql)

MySQLは、初心者がデータベーススキルを学ぶのに適しています。 1.MySQLサーバーとクライアントツールをインストールします。 2。selectなどの基本的なSQLクエリを理解します。 3。マスターデータ操作:テーブルを作成し、データを挿入、更新、削除します。 4.高度なスキルを学ぶ:サブクエリとウィンドウの関数。 5。デバッグと最適化:構文を確認し、インデックスを使用し、選択*を避け、制限を使用します。

MySQLは、テーブル構造とSQLクエリを介して構造化されたデータを効率的に管理し、外部キーを介してテーブル間関係を実装します。 1.テーブルを作成するときにデータ形式と入力を定義します。 2。外部キーを使用して、テーブル間の関係を確立します。 3。インデックス作成とクエリの最適化により、パフォーマンスを改善します。 4.データベースを定期的にバックアップおよび監視して、データのセキュリティとパフォーマンスの最適化を確保します。

MySQLは、Web開発で広く使用されているオープンソースリレーショナルデータベース管理システムです。その重要な機能には、次のものが含まれます。1。さまざまなシナリオに適したInnodbやMyisamなどの複数のストレージエンジンをサポートします。 2。ロードバランスとデータバックアップを容易にするために、マスタースレーブレプリケーション機能を提供します。 3.クエリの最適化とインデックスの使用により、クエリ効率を改善します。

SQLは、MySQLデータベースと対話して、データの追加、削除、変更、検査、データベース設計を実現するために使用されます。 1)SQLは、ステートメントの選択、挿入、更新、削除を介してデータ操作を実行します。 2)データベースの設計と管理に作成、変更、ドロップステートメントを使用します。 3)複雑なクエリとデータ分析は、ビジネス上の意思決定効率を改善するためにSQLを通じて実装されます。

MySQLの基本操作には、データベース、テーブルの作成、およびSQLを使用してデータのCRUD操作を実行することが含まれます。 1.データベースの作成:createdatabasemy_first_db; 2。テーブルの作成:createTableBooks(idintauto_incrementprimarykey、titlevarchary(100)notnull、authorvarchar(100)notnull、published_yearint); 3.データの挿入:InsertIntoBooks(タイトル、著者、公開_year)VA

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

MySQLデータベースを構築する手順には次のものがあります。1。データベースとテーブルの作成、2。データの挿入、および3。クエリを実行します。まず、createdAtabaseおよびcreateTableステートメントを使用してデータベースとテーブルを作成し、InsertINTOステートメントを使用してデータを挿入し、最後にSelectステートメントを使用してデータを照会します。

MySQLは、使いやすく強力であるため、初心者に適しています。 1.MYSQLはリレーショナルデータベースであり、CRUD操作にSQLを使用します。 2。インストールは簡単で、ルートユーザーのパスワードを構成する必要があります。 3.挿入、更新、削除、および選択してデータ操作を実行します。 4. Orderby、Where and Joinは複雑なクエリに使用できます。 5.デバッグでは、構文をチェックし、説明を使用してクエリを分析する必要があります。 6.最適化の提案には、インデックスの使用、適切なデータ型の選択、優れたプログラミング習慣が含まれます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版
中国語版、とても使いやすい

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
