Sql server 更新数据库中的所有表
我正在更新数据库中的所有表,但在获取正确的代码时遇到了问题。我收到了下面的代码,但作为以前的解决方案,我尝试使用Sql server 更新数据库中的所有表,sql-server,tsql,dynamic-sql,Sql Server,Tsql,Dynamic Sql,我正在更新数据库中的所有表,但在获取正确的代码时遇到了问题。我收到了下面的代码,但作为以前的解决方案,我尝试使用SP\msforeachtable,无法获得正确的格式。这方面的帮助会很好。代码如下: USE TPP_DB GO DECLARE @SQL NVARCHAR(MAX) EXEC sp_MSforeachtable 'SELECT @SQL = ( SELECT '' UPDATE ''' + QUOTENAME(SCHEMA_NAME(o.[schema_id])) +
SP\msforeachtable
,无法获得正确的格式。这方面的帮助会很好。代码如下:
USE TPP_DB
GO
DECLARE @SQL NVARCHAR(MAX)
EXEC sp_MSforeachtable
'SELECT @SQL = (
SELECT ''
UPDATE ''' + QUOTENAME(SCHEMA_NAME(o.[schema_id])) + ''.'''' + QUOTENAME(o.name) + '''
SET ''' + QUOTENAME(c.name) + '' = NULL
WHERE '' + QUOTENAME(c.name) + '' = '''''
FROM sys.columns c
JOIN sys.objects o ON c.[object_id] = o.[object_id]
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)')
PRINT @SQL
EXEC sys.sp_executesql @SQL'
你可以这样试试
SELECT 'UPDATE ' + Schema_name(t.schema_id) + '.'
+ t.NAME + ' SET ' + c.NAME + ' =NULL WHERE ' + c.NAME
+ ' ='''';'
FROM sys.tables AS t
INNER JOIN sys.columns c
ON t.OBJECT_ID = c.OBJECT_ID
--WHERE c.NAME = 'ModifiedDate'
ORDER BY Schema_name(t.schema_id),
t.NAME;
使用标签dbms!(这看起来一点也不像ANSI SQL…)我绑得太快了,标记了enter,并将其放入SQL和Server中。谢谢你在发帖3秒后的回复。只有3秒?那一定是我的个人记录!我在按下enter键后立即意识到了我的错误,我正在修复它,当你发表评论时,我无法在你进入它之前添加三个标记。这一个可以工作,但我需要将其放入存储过程中,我需要它在不复制和粘贴输出的情况下运行。无论如何,我用光标解析表解决了这个问题。