ネーミング仕様に従ってすべてのデフォルト制約名を名前変更
5553 ワード
今日はPDで作成した表の山をSQLスクリプトを生成し、データベース上で生成テストを行います.すべてのデフォルト値コンストレイントが、ネーミング仕様に合致していないことがわかりました.
本を読むのが努力しないため、PDの中で問題を解決する方法を見つけていないで、データベースの端で方法を考えて、SPを書いて、テストを経て私の問題を解決することができます.
特記は以下の通り.
本を読むのが努力しないため、PDの中で問題を解決する方法を見つけていないで、データベースの端で方法を考えて、SPを書いて、テストを経て私の問題を解決することができます.
特記は以下の通り.
-- =============================================
-- Author: Joe
-- Create date: 2011-11-02
-- Description: “DF_ _ ”
-- =============================================
CREATE PROCEDURE [dbo].[usp_RenameAllDFName]
AS
BEGIN
SET NOCOUNT ON;
select A.name as df_name,OBJECT_NAME(A.parent_object_id)as table_name,
B.name as col_name
into #tmp
from sys.default_constraints AS A
inner join sys.columns AS B
on A.object_id=B.default_object_id and B.column_id=A.parent_column_id
declare @df_name varchar(50),@table_name varchar(50),@col_name varchar(50)
declare csr_df cursor
for select df_name,table_name,col_name from #tmp
open csr_df
fetch next from csr_df
into @df_name,@table_name,@col_name
while @@FETCH_STATUS=0
begin
EXEC ('exec sp_rename @objname = '''+@df_name+''', @newname = ''DF_'+@table_name+'_'+@col_name+''', @objtype = N''OBJECT''')
fetch next from csr_df into @df_name,@table_name,@col_name
end
close csr_df
deallocate csr_df
drop table #tmp
END