SQLServer存储过程Print
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)

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











インポート手順は次のとおりです。 MDF ファイルを SQL Server のデータ ディレクトリ (通常は C:\Program Files\Microsoft SQL Server\MSSQL\DATA) にコピーします。 SQL Server Management Studio (SSMS) でデータベースを開き、[アタッチ] を選択します。 「追加」ボタンをクリックして、MDF ファイルを選択します。データベース名を確認し、「OK」ボタンをクリックします。

SQL Server データベースに既に存在する同じ名前のオブジェクトについては、次の手順を実行する必要があります。 オブジェクトの種類 (テーブル、ビュー、ストアド プロシージャ) を確認します。 IF NOT EXISTS を使用すると、オブジェクトが空の場合に作成をスキップできます。オブジェクトにデータがある場合は、別の名前を使用するか、構造を変更してください。既存のオブジェクトを削除するには、DROP を使用します (注意してください。バックアップを推奨します)。スキーマの変更をチェックして、削除または名前変更されたオブジェクトへの参照がないことを確認します。

SQL Server のポート番号を表示するには: SSMS を開いてサーバーに接続します。オブジェクト エクスプローラーでサーバー名を見つけ、右クリックして [プロパティ] を選択します。 「接続」タブで、「TCP ポート」フィールドを表示します。

SQL Server サービスの開始に失敗した場合の解決手順は次のとおりです。 エラー ログを確認して、根本原因を特定します。サービス アカウントにサービスを開始する権限があることを確認してください。依存関係サービスが実行されているかどうかを確認します。ウイルス対策ソフトウェアを無効にします。 SQL Server のインストールを修復します。修復が機能しない場合は、SQL Server を再インストールします。

SQL Server データベースを誤って削除した場合は、次の手順を実行して回復できます: データベース アクティビティの停止、ログ ファイルのバックアップ、データベース ログの確認、回復オプション: バックアップからの復元、トランザクション ログからの復元、DBCC CHECKDB の使用、3 番目の使用パーティーツール。データ損失を防ぐために、データベースを定期的にバックアップし、トランザクション ログを有効にしてください。

SQL Server データベース ファイルは、通常、次のデフォルトの場所に保存されます。 Windows: C:\Program Files\Microsoft SQL Server\MSSQL\DATALinux: /var/opt/mssql/data データベース ファイルの場所は、データベース ファイル パスを変更することでカスタマイズできます。設定。

SQL Server のインストールが失敗した場合は、次の手順に従ってクリーンアップできます。 SQL Server をアンインストールする レジストリ キーを削除する ファイルとフォルダーを削除する コンピューターを再起動する

このウェブサイトは3月7日、ファーウェイのデータストレージ製品ラインの社長である周岳峰博士が最近MWC2024カンファレンスに出席し、特にウォームデータ(WarmData)とコールドデータ(ColdData)用に設計された新世代のOceanStorArctic磁電ストレージソリューションをデモンストレーションしたと報じた。ファーウェイのデータストレージ製品ラインの社長である周岳峰氏は、一連の革新的なソリューションをリリースした 画像出典: このサイトに添付されているファーウェイの公式プレスリリースは次のとおりです: このソリューションのコストは磁気テープのコストより 20% 低く、そのコストは磁気テープのコストよりも 20% 低くなります。消費電力はハードディスクよりも90%低いです。外国のテクノロジーメディアのblocksandfilesによると、ファーウェイの広報担当者も磁気電子ストレージソリューションに関する情報を明らかにした:ファーウェイの磁気電子ディスク(MED)は磁気ストレージメディアの主要な革新である。初代ME
