ابزارهای کمکی

در این بخش ابزارهایی برای کمک به استانداردسازی فراهم آورده خواهند شد.

فرمان SQL برای جایگزینی حروف «ک»، «ی»، و «ه» درست

UPDATE sample_table SET sample_field = replace(sample_field, 'find', 'replace');

این فرمان بخش sample_field را در میز sample_table به روز رسانی می‌کند؛ به گونه ای که هرگونه واژه find با واژه replace جایگزین شود.

فرمان زیر حروف نادرست را در بخش posts میز mydata یافته و حروف درست را به جای آنها می‌گذارد.


UPDATE mydata SET posts = replace(posts, 'ي', 'ی');
UPDATE mydata SET posts = replace(posts, 'ك', 'ک');
UPDATE mydata SET posts = replace(posts, 'ة', 'ه');
هشدار:
فرمان بالا تنها در MySQL آزمایش شده است.
پیش از به کار گرفتن فرمان بالا، از بانک داده خود یک پشتیبان بگیرید.
مسئولیت به کار گیری فرمان بالا با خود شما است. پروژه استانداردسازی مسئولیت هر گونه مشکل احتمالی را نمی‌پذیرد.

یک SP زیر TSQL برای جایگزینی نوشته‌های نادرست


CREATE PROC SearchAndReplace
(
	@SearchStr nvarchar(100),
	@ReplaceStr nvarchar(100)
)
AS
BEGIN

	SET NOCOUNT ON

	DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110), @SQL nvarchar(4000), @RCTR int
	SET  @TableName = ''
	SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')
	SET @RCTR = 0

	WHILE @TableName IS NOT NULL
	BEGIN
		SET @ColumnName = ''
		SET @TableName = 
		(
			SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
			FROM 	INFORMATION_SCHEMA.TABLES
			WHERE 		TABLE_TYPE = 'BASE TABLE'
				AND	QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
				AND	OBJECTPROPERTY(
						OBJECT_ID(
							QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
							 ), 'IsMSShipped'
						       ) = 0
		)

		WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
		BEGIN
			SET @ColumnName =
			(
				SELECT MIN(QUOTENAME(COLUMN_NAME))
				FROM 	INFORMATION_SCHEMA.COLUMNS
				WHERE 		TABLE_SCHEMA	= PARSENAME(@TableName, 2)
					AND	TABLE_NAME	= PARSENAME(@TableName, 1)
					AND	DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
					AND	QUOTENAME(COLUMN_NAME) > @ColumnName
			)
	
			IF @ColumnName IS NOT NULL
			BEGIN
				SET @SQL=	'UPDATE ' + @TableName + 
						' SET ' + @ColumnName 
						+ ' =  REPLACE(' + @ColumnName + ', ' 
						+ QUOTENAME(@SearchStr, '''') + ', ' + QUOTENAME(@ReplaceStr, '''') + 
						') WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
				EXEC (@SQL)
				SET @RCTR = @RCTR + @@ROWCOUNT
			END
		END	
	END

	SELECT 'Replaced ' + CAST(@RCTR AS varchar) + ' occurence(s)' AS 'Outcome'
END

فرمان نمونه: exec SearchAndReplace 'ک' , 'ك' با سپاس فراوان از علی‌رضا اسم‌رام از تارگاه ASPCode.IR برای نوشتن این کد.

هشدار:
پیش از به کار گرفتن فرمان بالا، از بانک داده خود یک پشتیبان بگیرید.
مسئولیت به کار گیری فرمان بالا با خود شما است. پروژه استانداردسازی مسئولیت هر گونه مشکل احتمالی را نمی‌پذیرد.

ویرایشگر برای جایگزینی حروف «ک»، «ی»، و «ه» درست