请教个使用动态SQL创建存储过程的问题
小弟最近把一张大的数据表做了下水平拆分,拆成了若干个数据。
虽然原来的数据库主要是保存数据为主,但是也有几个存储过程需要同步到各个新数据库。而这次的拆分方案是根据某个日期字段进行的,每个月一个数据表。也就是类似“DB0911”,“DB1002”这种格式。
现在建表、导入数据小弟都搞定了,不过建立存储过程的时候出了点麻烦。小弟仿照建表的样子这么写了建立存储过程的语句:
DECLARE @dt DATE SET @dt = GETDATE()DECLARE @dbName VARCHAR(20) SET @dbName = 'DB' + CONVERT(VARCHAR(4), @dt, 12)EXEC ('USE [' + @dbName + ']CREATE PROCEDURE sp_TestASBEGIN PRINT ''Hello World''END')
DECLARE @dt datetime SET @dt = GETDATE()DECLARE @dbName VARCHAR(20) SET @dbName = 'DB' + CONVERT(VARCHAR(4), @dt, 12)EXEC ('USE [' + @dbName + ']')goCREATE PROCEDURE sp_TestASBEGIN PRINT 'Hello World'END把存储过程与use DB分开写试试
[解决办法]
DECLARE @dt DATE SET @dt = GETDATE()DECLARE @dbName VARCHAR(20) SET @dbName = 'DB' + CONVERT(VARCHAR(4), @dt, 12)declare @s = 'use '+@dbname+' go create procedure sp_Test as begin print ''Hello World'' end'--可以先输出看看print @sexec(@s)
[解决办法]
高手解决吧。。。路过。。
[解决办法]
能力欠佳 高手解答~Up!
[解决办法]
请问楼主拆分数据库是怎么做的?小弟没这方面的经验啊T-T
[解决办法]
顶楼上,也想知道如何拆分