关于SQL数据表存储过程表名前缀换成dbo代码

1.全部表名换成dbo

<span style="font-size:18px;">EXEC sp_MSforeachtable 'exec sp_changeobjectowner ''?'',''dbo'' '</span>

2.存储过程全部换成dbo

<span style="font-size:18px;">CREATE PROCEDURE dbo.ChangeObjectOwner 

@OldOwner as NVARCHAR(128)='dbo',--参数原所有者 

@NewOwner as NVARCHAR(128)='dbo'--参数新所有者 

AS 

DECLARE @Name as NVARCHAR(128) 

DECLARE @Owner as NVARCHAR(128) 

DECLARE @OwnerName as NVARCHAR(128) 

DECLARE curObject CURSOR FOR 

select 'Name' = name, 

'Owner' = user_name(uid) 

from sysobjects 

where user_name(uid)[email protected] 

order by name 

OPEN curObject 

FETCH NEXT FROM curObject INTO @Name, @Owner 

WHILE(@@FETCH_STATUS=0) 

BEGIN 

if @[email protected] 

begin 

set @OwnerName = @OldOwner + '.' + rtrim(@Name) 

exec sp_changeobjectowner @OwnerName, @NewOwner 

end 

FETCH NEXT FROM curObject INTO @Name, @Owner 

END 

close curObject 

deallocate curObject
GO
</span>

然后在运行

<span style="font-size:18px;">exec ChangeObjectOwner '数据库','dbo'
</span>
时间: 2024-10-13 11:37:51

关于SQL数据表存储过程表名前缀换成dbo代码的相关文章

sqlserver查询数据的所有表名和行数

原文:sqlserver查询数据的所有表名和行数 //查询所有表明select name from sysobjects where xtype='u' select * from sys.tables //查询数据库中所有的表名及行数 SELECT a.name AS [TABLE NAME] , b.rows AS [RECORD COUNT] FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.id WHERE ( a.t

SQL Server如何查找表名或列名中包含空格的表和列

最近发现一个数据库中的某个表有个字段名后面包含了一个空格,这个空格引起了一些小问题,一般出现这种情况,是因为创建对象时,使用双引号或双括号的时候,由于粗心或手误多了一个空格,如下简单案例所示: USE TEST; GO   --表TEST_COLUMN中两个字段都包含有空格 CREATE TABLE TEST_COLUMN (     "ID  "    INT IDENTITY (1,1),     [Name ]   VARCHAR(32),     [Normal]  VARCH

SQL SERVER 使用BULK Insert将txt文件中的数据批量插入表中(1)

1/首先建立数据表 CREATE TABLE BasicMsg( RecvTime FLOAT NOT NULL , --接收时间,不存在时间相同的数据 AA INT NOT NULL, --24位地址码 . FlightID Varchar(10) NULL, --航班号) 2/ 建立存储过程 USE DF17DataProIF EXISTS (SELECT * FROM SYS.PROCEDURES WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[BulkDataP

SQL跨数据库复制表数据

Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少.但我们在开发.测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了. 1.INSERT INTO SELECT语句 语

删除数据所有的表和存储过程

删除所有的表: 如果由于外键约束删除table失败,则先删除所有约束: --/第1步**********删除所有表的外键约束*************************/ DECLARE c1 cursor for select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; 'from sysobjects where xtype = 'F'open c1declare @c1 varch

【SQL Server】表与表数据操作

一. 创建表结构 USE TEST_427 --使用TEST_427这个数据库,表示对该数据库进行建表操作 GO CREATE TABLE XSB --创建XSB表 ( StudentNo char(6) NOT NULL PRIMARY KEY, --列名 + 类型 + 是否可为空,最后设置主键 StudentName char(8) NOT NULL, StudentSex bit NULL DEFAULT 1, --用default设置默认值,此处设为1 Sbrithday date NU

SQL 判断 ‘表,存储过程,函数 ...’ 已是否存在

下面为您介绍sql下用了判断各种资源是否存在的代码,需要的朋友可以参考下,希望对您学习sql的函数及数据库能够有所帮助.库是否存在if exists(select * from master..sysdatabases where name=N'库名')print 'exists'elseprint 'not exists'----------------- 判断要创建的表名是否存在if exists (select * from dbo.sysobjects where id = object

SQL复制数据表及表结构

SQL复制数据表 (select * into 与 insert into)select * into 目标表名 from 源表名 insert into 目标表名(fld1, fld2) select fld1, 5 from 源表名 以上两句都是将 源表 的数据插入到 目标表,但两句又有区别的: 第一句(select into from)要求目标表不存在,因为在插入时会自动创建. 第二句(insert into select from)要求目标表存在,由于目标表已经存在,所以我们除了插入源表

SQL语句获取所有数据库名、表名、字段名、表字段长度

引自:http://www.2cto.com/database/201209/155178.html 获取数据库中所有的表 SELECT SysObjects.name AS Tablename FROM sysobjects WHERE xtype = 'U' 获取数据库中所有表的列名 SELECT SysColumns.name AS Columnsname, SysObjects.name AS Tablename FROM SysObjects, SysColumns WHERE Sys